带有JQuery的IE6 Ajax

我正在尝试将REST Web服务中的数据感染到HTML页面中。问题是Internet Explorer 6(这是我在XP SP3上的目标工作站)在努力工作。 这是使用的代码:

$.ajax({
       type: "GET",contentType:"application/json; charset=utf-8",dataType : 'json',url: "https://jsonplaceholder.typicode.com/posts/1",success: function(data) {
            alert(data);
       },complete: function(xhr) {
          alert(xhr.status+" "+xhr.responseText);
       }
});

在Firefox 52 ESR上进行了测试:成功和完整的功能都可以工作。

在Chrome 49上:成功工作,调用complete,但xhr.status为0且xhr.responseText为空。

在IE6上,根本不调用成功,而是调用complete,但是xhr.status为0,xhr.responseText未定义。

尝试了SOF此处已回答的问题,例如删除了多余的逗号,添加了dataType ...,但IE6仍然没有成功。

我们怎么能一次做到呢?

谢谢

fangshijie66 回答:带有JQuery的IE6 Ajax

IE6是古老的,它不支持CORS(甚至不支持XDomainRequest)。

无法在IE6中使用JavaScript执行跨域的RESTful HTTP请求。

如果要执行跨域请求,则需要使用其他(非RESTful)方法,例如JSONP。

,

正如Quentin所说,IE 6/7不支持发送CORS请求,您可以检查this blog

您可以参考以下代码来访问use JSONP

// Using JSONP
$.ajax({
    url: "<request url>",jsonp: "callback",// Tell jQuery we're expecting JSONP
    dataType: "jsonp",data: {
        q: "select title,abstract,url from search.news where query=\"cat\"",format: "json"
    },// Work with the response
    success: function( response ) {
        console.log( response ); // server response
    }
});

此外,请检查this article

Internet Explorer 9和更早版本将忽略Access-Control-Allow标头,并且默认情况下禁止对Internet区域的跨域请求。要启用跨域访问,请转到工具-> Internet选项->安全选项卡,单击“自定义级别”按钮。找到“其他->跨域访问数据源”设置,然后选择“启用”选项。

本文链接:https://www.f2er.com/3160976.html

大家都在问