[英]How to send a cross-domain ajax request with cookies
我正在開發SaaS應用程序,用戶創建帳戶並登錄我的SaaS系統。 然后,SaaS應用程序具有一個JS代碼,客戶應將此JS代碼包括在他們的網站中,並且在代碼內部,我需要向我的SaaS域發送一個POST
Ajax請求(這是一個跨域請求)。
問題是,為了共享登錄用戶的憑據,我必須將withCredentials
屬性和Access-Control-Allow-Credentials
標頭設置為true
。
我不確定這是否是一種好方法? 也許我應該使用其他方法,例如使用OAuth或其他方法來共享已登錄用戶的憑據...
我將不勝感激任何建議。
您需要使用JSONP作為您的類型:
$.ajax(
{
type: "POST",
url: "http://test.com/api/getlist.json",
dataType: 'jsonp',
xhrFields: {
withCredentials: true
},
crossDomain: true,
beforeSend: function(xhr) {
xhr.setRequestHeader("Cookie", "session=xxxyyyzzz");
},
success: function(){
alert('success');
},
error: function (xhr) {
alert(xhr.responseText);
}
}
);
要使用憑據啟用跨域請求,您的服務器應支持CORS 。 啟用CORS后,您的客戶代碼可以將withCredentials
設置為true
以在請求中包含cookie。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.