伊谢尔伦2017-06-15 09:24:34
首先,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
typecho2017-06-15 09:24:34
使用的時候客戶端會自動帶上cookie,jquery已經封裝好了,如果你想自己自訂cookie的話,可以使用$.cookie外掛程式去設定客戶端cookie最後get。
關於調試,你可以開啟控制台F12,在network查看請求頭中的信息
巴扎黑2017-06-15 09:24:34
先在控制台Application
裡面的cookies
選項裡面找找,cookies
設定get
成功了沒。如果有設定好,客戶端在同一網域下,會自動在每個頁面帶上cookie
的。
学习ing2017-06-15 09:24:34
發送請求時瀏覽器會自動攜帶cookie傳遞給後台的,只有localStorage/sessionStorage的參數要傳遞的話需要非同步時以參數傳遞
为情所困2017-06-15 09:24:34
**$.support.cors = true;**
$.ajax({
url: urls.getDetailList,
type: "get",
dataType: "json",
**xhrFields: { withCredentials: true },**
success: function(res) {}
})
你應該是$.support.cors跨域沒打開,加端程式碼就可以 withCredentials,另外後端也要配跨域才行