JQuery external Ajax call not working in IE

后端 未结 7 2068
梦毁少年i
梦毁少年i 2020-12-21 21:37

I have an ajax script that sends some data to an external URL. The external URL is hosted on the same server, however the domain is different than the source of the ajax cal

相关标签:
7条回答
  • 2020-12-21 22:22

    (this is copypaste from my another similar answer). You could try enabling "jQuery.support.cors=true" flag and see how it goes. I use jQuery v1.7.2.

    I had to load webpage from local disk "file:///C:/test/htmlpage.html", call "http://localhost/getxml.php" url, and do this in IE8+ and Firefox12+ browsers, use jQuery v1.7.2 lib to minimize boilerplate code. After reading dozens of articles finally figured it out. Here is my summary.

    • server script (.php, .jsp, ...) must return http response header Access-Control-Allow-Origin: *
    • before using jQuery ajax set this flag in javascript: jQuery.support.cors = true;
    • you may set flag once or everytime before using jQuery ajax function
    • now I can read .xml document in IE and Firefox. Other browsers I did not test.
    • response document can be plain/text, xml, json or anything else

    Here is an example jQuery ajax call with some debug sysouts.

    jQuery.support.cors = true;
    $.ajax({
        url: "http://localhost/getxml.php",
        data: { "id":"doc1", "rows":"100" },
        type: "GET",
        timeout: 30000,
        dataType: "text", // "xml", "json"
        success: function(data) {
            // show text reply as-is (debug)
            alert(data);
    
            // show xml field values (debug)
            //alert( $(data).find("title").text() );
    
            // loop JSON array (debug)
            //var str="";
            //$.each(data.items, function(i,item) {
            //  str += item.title + "\n";
            //});
            //alert(str);
        },
        error: function(jqXHR, textStatus, ex) {
            alert(textStatus + "," + ex + "," + jqXHR.responseText);
        }
    });
    
    0 讨论(0)
提交回复
热议问题