根据带有凭据的请求,Firefox仅在以下情况下发送凭据以及跨域帖子:
invocation.withCredentials = "true";
设置了…但是看来jQuery的Ajax API似乎没有为此提供任何机制。
有什么我想念的吗?我还有其他方法可以做到吗?
Answers:
功能应该在jQuery 1.5中被破坏。
从jQuery 1.5.1开始,您应该使用xhrFields参数。
$.ajaxSetup({
type: "POST",
data: {},
dataType: 'json',
xhrFields: {
withCredentials: true
},
crossDomain: true
});
文件:http://api.jquery.com/jQuery.ajax/
报告的错误: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库施加了进一步的限制,禁止了这种类型的功能。
method: 'GET'
受支持。 api.jquery.com/jquery.ajax