Jquery的$.get()方法在发送请求的时候怎么才能带上cookie?
首先,jquery的get方法和post方法都是对ajax的一种封装,见源码
jQuery.each( [ "get", "post" ], function( i, method ) {
jQuery[ method ] = function( url, data, callback, type ) {
// Shift arguments if data argument was omitted
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = undefined;
}
// The url can be an options object (which then must have .url)
return jQuery.ajax( jQuery.extend( {
url: url,
type: method,
dataType: type,
data: data,
success: callback
}, jQuery.isPlainObject( url ) && url ) );
};
} );`
然后,发送请求的时候怎么才能带上cookie?
ajax方法发送请求的时候,会自动带上你所登录的域名的cookie,不需要你设置。
所以,Jquery的$.get()方法什么时候都会带上cookie
使用的时候客户端会自动带上cookie,jquery已经封装好了,如果你想自己自定义cookie的话,可以使用$.cookie插件去设置一下客户端cookie最后get。
关于调试,你可以开启控制台F12,在network查看请求头中的信息
$.support.cors = true;
$.ajax({
url: urls.getDetailList,
type: "get",
dataType: "json",
xhrFields: { withCredentials: true },
success: function(res) {}
})
你应该是$.support.cors跨域没打开,加端代码就可以 withCredentials,另外后端也要配跨域才行
13 回答13k 阅读
8 回答2.8k 阅读
2 回答5.2k 阅读✓ 已解决
7 回答2.2k 阅读
5 回答1.4k 阅读
3 回答2.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
在同一个域下,自动就会带上cookie