JQuery跨域错误 - 没有'Access-Control-Allow-Origin'

时间:2014-09-08 10:23:51

标签: c# javascript jquery wcf cross-domain

POST请求

var url = "http://xxx.xxx.x.x/MyServices.svc/GetOrders";
$.ajax({
    type: "POST",
    url: url,
    crossDomain : true,
    data: 'abcd',
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (result) {
        data = result.data;                             
    },
    error: function (xhr, ajaxOptions, thrownError) {
    debugger;
        alert('error');
    }
});

当网址是 localhost 时,我收到回复 尝试跨服务器时,我收到错误

405(不允许的方法)

XMLHttpRequest无法加载http://xxx.xxx.x.x/MyServices.svc/GetOrders。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' null'因此不允许访问。

网上的所有答案都没有结果。

1 个答案:

答案 0 :(得分:0)

如果您可以回复json,请尝试使用jsonp在域名之间进行交流:

$.ajax({
  type: "POST",
  dataType: 'jsonp',
  ...... etc ....

如官方网站所述: -

  

JSONP的出现 - 本质上是一个双方同意的跨站点脚本   黑客 - 为强大的内容混搭打开了大门。许多   着名网站提供JSONP服务,允许您访问他们的   内容通过预定义的API。

  

jQuery处理JSONP幕后的所有复杂方面 -   我们所要做的就是告诉jQuery JSONP回调的名称   由YQL指定的参数("回调"在这种情况下),否则   整个过程看起来和感觉就像一个普通的Ajax请求。