javascript - ajax 调用 web 服务总是会导致错误

标签 javascript jquery ajax web-services

我正在对网络服务进行以下调用:

$.ajax({
    dataType:'json',
    cache:false,
    type: "GET",
    url: url,
    success: function (data) {
        alert("success");            
    },
    error: function (xhr, ajaxOptions, thrownError){
        alert('Failed to subscribe.');
    }  
});                

Web 服务被命中并且肯定会返回 json - 我可以通过浏览器命中它并得到我所期望的结果。在我的网站中,错误函数总是被调用。

使用 Fiddler 我可以看到有 200 个结果 - 我唯一注意到的是 fiddler 在响应中说

Response is encoded and may require decoding before inspection. Click here to transform.

当我点击它时,响应从一堆随机符号变成了我期望的 json。

通过谷歌搜索,我看到添加 contentType: "application/json;charset=UTF-8", 的建议接到我的电话。

这可以阻止我的网络服务功能受到影响。

我也尝试将其更改为 POST,只是为了看看这是否是问题所在......仍然不起作用。

谁能指出我做错了什么?

编辑: 我刚刚注意到我在 Chrome 中得到了这个

Refused to set unsafe header "Accept-Encoding" XMLHttpRequest cannot load http://localhost:57631/Api/Products/SubscribeEmailMeWhenAvailable/203/wrfw@wrwq.com?_=1447757623275. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:50217' is therefore not allowed access.

最佳答案

此消息似乎与 gzip 压缩有关。

你试过这个吗?

headers: { "Accept-Encoding" : "gzip,deflate,sdch" } 

结果:

$.ajax({
    headers: { "Accept-Encoding" : "gzip,deflate,sdch" } 
    contentType: "application/json; charset=utf-8",
    dataType:'json',
    cache:false,
    type: "GET",
    url: url,
    success: function (data) {
        alert("success");            
    },
    error: function (xhr, ajaxOptions, thrownError){
        alert('Failed to subscribe.');
    }  
});            

关于javascript - ajax 调用 web 服务总是会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754577/

相关文章:

javascript - $(窗口)打开。 ('load' ) 函数适用于 Firefox,但不适用于 Safari/iOS 或 Chrome?

php - jQuery/AJAX 检索新插入记录的 ID 并在页面刷新之前在 HTML 中使用它

Javascript 对象数据与 Vue 的绑定(bind)

python - 无法使 GAE Channel API 在本地计算机上工作

javascript - 根据组合框中不同的选定值绑定(bind)字段状态(禁用或隐藏)

javascript - 在 Javascript 中用 Null 填充字符串

javascript - 如何以与在 Javascript 中相同的方式在 Typescript 中访问 "this"?

javascript - 通过 javascript 访问 id 属性

javascript - 常规 js int 和 jquery.val() 中的 int 有什么区别?

php - 使用 colorbox 为 PHP 表单创建 'thankyou' 弹出窗口