相关疑难解决方法(0)

在跨域调用的IE中,Jquery $ .ajax失败

我正在使用跨域请求$.ajax.它适用于Firefox和Chrome,但不会在IE 7或8上发出呼叫.任何人都可以告诉我以下内容有什么问题吗?

  1. 我使用了JSON和JSONP(由于一些自定义限制,我停止使用它).
  2. 我已经Allow-access-control-origin在我的网站上使用标题了.(没有这些,Chrome和Firefox没有成功请求.)
  3. 我已经尝试过https://developer.mozilla.org/en/http_access_control

码:

$.ajax({
    type: 'GET',
    url: "http://anotherdomain.com/Service/GetControl?id=" + zoneID,
    cache: false,
    contentType: "application/x-www-form-urlencoded",
    async: false,
    beforeSend: function (request) {
        //alert('before send');
        //request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        //request.setRequestHeader("X-PINGOTHER", "pingpong");
    } ,
    success: function (data, status) {
        //alert("Data returned :" + data);
        //alert("Status :" + status);
        if (status == "success" && data != "")
            $("#" + div.id).append(data);
        else
            $("#" + div.id).attr("style", "display:none;");
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(textStatus);
        alert(errorThrown);
    }
});
Run Code Online (Sandbox Code Playgroud)

我尝试了多个网站上的各种提示,但还没有运气.

jquery cross-domain

64
推荐指数
6
解决办法
10万
查看次数

在IE上拒绝访问jQuery脚本

我有一个使用jQuery 1.4.2脚本的iframe.同样的iframe被注入到两个httphttps站点中.jQuery脚本作为相对路径包含在主HTML文件中(例如,/ scripts/jquery-1.4.2.min.js).

进行AJAX调用时,Internet Explorer拒绝访问.AJAX正在调用另一个子域,但它正在使用正确的协议.所有其他浏览器都可以工作,但Internet Explorer会出现以下错误:

SCRIPT5:访问被拒绝.
jquery-1.4.2.min.js,第127行字符344

我听说这个错误来自跨域AJAX调用.但为什么IE是唯一一个给我废话的人呢?有IE解决方案吗?

另外,这是我的AJAX:

 $.ajax({
     url: thisURL,
     dataType: "json",
     data: {cmd : 'getMessage', uurl: urlVar, t: Math.random()},
     success: function(ret){
         callback(ret)
     }
 });
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery internet-explorer

46
推荐指数
2
解决办法
10万
查看次数

在Internet Explorer 9中更改域名后,Ajax停止工作

我们正在开发一个使用html5,jQuery(1.8.2)和jQuery mobile的移动网站,同时进行jQuery ajax调用(get和post).
在我们更改了域名后,我们对ie9上的ajax调用进行了"拒绝访问".
我们试图包括jquery.iecors.js.但我们仍然得到同样的错误.这有什么解决方案吗?

示例代码:

$.support.cors = true;

$.ajax({
    cache: false,
    async: true,
    crossDomain: true,
    timeout: 600000,

    url: baseUrl + '/SmartTouch/restServices/PrefferedHotels',
    type: 'GET',

    beforeSend: function (xhr) {
        xhr.setRequestHeader("Authorization", "Basic " + myencoded);
    },
    contentType: "application/x-www.form-urlencoded; (http://www.form-urlencoded;) (http://www.form-urlencoded;) charset=UTF-8",
    success: function (data) {

        alert("success");
    },
    error: function (jqXHR, textStatus, errorThrown) {


        alert("error!!::" + JSON.stringify(jqXHR));

        alert('response: ' + jqXHR.responseText);
        alert('code: ' + jqXHR.getResponseHeader('X-Subscriber-Status'));
        alert("textStatus " + textStatus);
        alert("errorThrown " + errorThrown);

    }
});
Run Code Online (Sandbox Code Playgroud)

编辑:

beforeSend: function (xhr) {
    xhr.setRequestHeader("Authorization", …
Run Code Online (Sandbox Code Playgroud)

javascript css ajax jquery-mobile

7
推荐指数
1
解决办法
1259
查看次数

jQuery跨域请求响应头

我正在用html数据类型制作跨域ajax请求.他们工作正常

Access-Control-Allow-Origin
Run Code Online (Sandbox Code Playgroud)

在服务器的响应中.问题是我需要从服务器的响应中获取某些标头,无论我做什么,除"内容类型"之外的响应标头返回null.

jQuery执行请求,检索包含标题的响应(我可以从流量中看到它),但它不会解析它.

我试过用

crossDomain: true
Run Code Online (Sandbox Code Playgroud)

它没有帮助.以下是来自服务器的示例响应.

Access-Control-Allow-Origin:*
Cache-Control:private
Content-Encoding:gzip
Content-Length:514
Content-Type:text/html; charset=utf-8 
X-MYRESPONSEHEADER:1
Run Code Online (Sandbox Code Playgroud)

如果请求和响应文档在同一服务器上

 success: function (data, status, xhr) {
        totalRows = xhr.getResponseHeader("X-MYRESPONSEHEADER");
Run Code Online (Sandbox Code Playgroud)

工作良好.我也尝试将$ .ajax分配给变量之类的

var jQxhr = $.ajax(.....
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不会被解析,因为jQuery实际上发出请求并获得响应

有任何想法吗?我错过了什么吗?

更新或龙的评论

标题已发送到请求

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-MYRESPONSEHEADER
Access-Control-Allow-Methods: POST
Access-Control-Allow-Methods: GET
X-MYRESPONSEHEADER: 24
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 29 Feb 2012 11:34:21 GMT
Run Code Online (Sandbox Code Playgroud)

内容长度:514

ajax jquery cross-domain response-headers

6
推荐指数
1
解决办法
2万
查看次数