这是一个问题:当用户在一台服务器(例如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)
,但它不起作用。哪里有解决方案?任何帮助将不胜感激。