簡體   English   中英

如何發送帶有Cookie的跨域Ajax請求

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM