jquery 跨域 $.ajax() 非jsonp方式

cors方式跨域

服务端 Access-Control-Allow-Origin 此属性设置特定域名的时候可以跨域。

设置*的时候不可以。

是jquery的$.ajax()方式不支持吗?

阅读 23.2k
10 个回答

感觉楼上都没有说到点子上。

Access-Control-Allow-Origin的值可以是单个或者多个特定域名,或者通配符*。

一般情况下,这就够了,题主是ajax跨域,除了后端配置相应的返回头之外(楼上很多都说了),前端也需要相应的请求头。

$.ajax({
  url: 'xxxxxxx',
  type: 'POST',
  dataType: 'json',
  success: function(data) {
    console.log(data);
  },
  xhrFields: {
    withCredentials: true    // 此字段标识要跨域传数据
  },
  crossDomain: true
});

其中,如果跨域还需要传输数据(如cookie等)的话,还得额外的增加withCredentials字段。

最后来个大而全的文档 https://developer.mozilla.org...

跟ajax方法没关系,是服务端的配置有问题

跨域访问需要服务器端支持

疑问已解决 cors跨域,ajax端携带cookie或服务端返回cookie时不支持 response.setHeader("Access-Control-Allow-Origin", "*"); 需要指定特定域名。

整理成文档: http://www.javajh.com/rest/ar...

之前遇到过类似的问题,chrome可以,但是firefox 不支持通配符

跨域的问题不只是Origin,还有HeadersMethods= =

用jQuery cors和非cors,代码是一样。区别在服务端。

我之前设置过,是在接口文件里面设置允许访问 解决跨域问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题