11

jQuery 的官方文档(异步 ajax 部分)说:

跨域请求和 dataType: "jsonp" 请求不支持同步操作。

然而,这适用于所有最近的浏览器,但 Firefox 版本 >= 20。这是我正在进行的调用类型:

$.ajax({
      type : "GET",
      async: false,
      dataType : "text",
      url : link,
      xhrFields: { withCredentials: true },

      success: function(response){
         console.log("success ");
      },
        error: function(error){
            console.error(error);               
        }  
});

有谁知道为什么会这样?

更新: 我用 jQuery 和 vanilla XHR 测试过,错误总是一样的

[异常...“底层对象不支持参数或操作”代码:“15”nsresult:“0x8053000f(InvalidAccessError)”

4

1 回答 1

18

使用beforeSend而不是xhrField.

$.ajax({
    type : "GET",
    async: false,
    dataType : "text",
    url : link,
    beforeSend: function(xhr) {
      xhr.withCredentials = true;
    },
    success: function(response){
      console.log("success ");
    },
    error: function(error){
      console.error(error);               
    }
});
于 2013-05-21T15:11:56.747 回答