FireFox不发送跨域ajax?

时间:2015-04-14 09:03:33

标签: ajax firefox

这是一个问题:当用户在一台服务器(例如a.com)上进行授权时,他应该在另一台服务器(例如b.com)上获得授权(通过jQuery-ajax) - 这两个站点共享用户数据库。编写的Js代码是

var form = jQuery('#auth_form');
var data = form.serialize();
var url = 'http://www.b.com/auth';
jQuery.ajax({
  url: url,
  crossDomain: true,
  type: 'POST',
  dataType: 'html',
  data: data,
  xhrFields: {
    withCredentials: true
  },
  success: function (html) {
  },
  error: function (jqXHR, textStatus) {
  }
});

当服务器发送响应时,他设置了一些标题

header(“Access-Control-Allow-Origin:http://www.a.com”); header(“Access-Control-Allow-Credentials:true”); header(“Access-Control-Allow-Methods:POST,GET,OPTION”); header(“Access-Control-Max-Age:1000”); header(“Access-Control-Allow-Headers:x-requested-with,Content-Type,origin,authorization,accept,client-security-token”);

它在Chrome和Opera中运行良好,但是ForeFox似乎甚至没有向服务器发送请求并在控制台日志中写出这样的内容:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://www.b.com. This can be fixed by moving the resource to the same domain or enabling CORS.

FireFox是最新版本(37.0.1),它写的是版本3.5+支持CORS,我不明白出了什么问题?我试过通过Fiddler查看网络 - 我没有看到来自FireFox的b.com请求(来自Chrome我看到一个 - 一切都好)。我已经尝试过管理FireFox选项(capability.policy.default.XMLHttpRequest.open = allAccess),但它不起作用。哪里有解决方案?任何帮助将不胜感激。

0 个答案:

没有答案