根据与凭证请求 ,Firefox将只发送凭据连同跨域的职位,如果
invocation.withCredentials = "true";
设置...但它似乎并不像jQuery的Ajax API提供任何机制来此。
是不是有什么我已经错过了? 有一些其他办法,我能做到吗?
根据与凭证请求 ,Firefox将只发送凭据连同跨域的职位,如果
invocation.withCredentials = "true";
设置...但它似乎并不像jQuery的Ajax API提供任何机制来此。
是不是有什么我已经错过了? 有一些其他办法,我能做到吗?
功能应该是在jQuery的1.5被打破。
由于jQuery的1.5.1,你应该使用xhrFields PARAM。
$.ajaxSetup({
type: "POST",
data: {},
dataType: 'json',
xhrFields: {
withCredentials: true
},
crossDomain: true
});
文档: http://api.jquery.com/jQuery.ajax/
报告的bug: http://bugs.jquery.com/ticket/8146
您可以使用beforeSend
回调设置其他参数( XMLHTTPRequest
对象传递给它作为其唯一的参数)。
只要你知道,这种类型的跨域请求将无法在正常的站点方案,不与其他任何浏览器。 我甚至不知道什么安全限制FF 3.5规定为好,只是让你不靠墙白白打你的头:
$.ajax({
url: 'http://bar.other',
data: { whatever:'cool' },
type: 'GET',
beforeSend: function(xhr){
xhr.withCredentials = true;
}
});
还有一两件事要提防的是,jQuery是建立标准化浏览器的差异。 你可能会发现,进一步限制由jQuery库,禁止这种类型的功能强加的。
在jQuery的3,也许更早的版本,下面简单的配置也适用于个人的要求:
$.ajax(
'https://foo.bar.com,
{
dataType: 'json',
xhrFields: {
withCredentials: true
},
success: successFunc
}
);
完整的错误,我在Firefox开发工具让 - >网络选项卡(安全选项卡单个请求)为:
发生错误时foo.bar.com.SSL同行的连接无法协商一组可接受的安全parameters.Error代码:SSL_ERROR_HANDSHAKE_FAILURE_ALERT