在使用jQuery進行跨域請求時,由于瀏覽器的同源策略(Same-origin policy)的限制,我們不允許從一個域名的頁面向另一個域名的頁面發送請求,除非這兩個域名具有相同的域名、端口和協議。
而在進行跨域請求時,我們有一個常見的需求就是要保存登錄狀態,也就是把登錄信息保存在cookie中。這時候就需要使用到jQuery的ajax方法,以及服務器端的處理代碼。
$.ajax({ type: "POST", url: "http://www.example.com/login", data: { username: "admin", password: "123456" }, xhrFields: { withCredentials: true }, success: function(data){ console.log(data); } });
上述代碼中,我們使用了jQuery的ajax方法進行跨域請求,其中設置了xhrFields的withCredentials為true,表示允許跨域請求攜帶cookie。
同時,我們還需要在服務器端進行相應的處理,以允許接收跨域請求,并設置允許攜帶cookie的響應頭。
header('Access-Control-Allow-Origin: http://www.example.com'); header('Access-Control-Allow-Credentials: true');
以上就是使用jQuery進行跨域請求時保存cookie的方法,需要注意在請求時設置xhrFields的withCredentials屬性為true,同時在服務器端設置響應頭中允許攜帶cookie的信息。