我正在开发SaaS应用程序,用户在我的SaaS系统中创建帐户并登录。然后,SaaS应用程序有一个JS代码,客户应该在他们的网站中包含这个JS代码,在代码中我需要向我的SaaS域发送POST
Ajax请求(这是一个跨域请求)。 / p>
问题是,为了共享已登录用户的凭据,我必须将withCredentials
属性和Access-Control-Allow-Credentials
标头设置为true
。
我不确定这是不是一个好方法?也许我应该使用另一种方法,比如使用OAuth或其他东西来共享登录用户凭证......
我会很感激任何建议。
答案 0 :(得分:-1)
您需要使用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);
}
}
);
答案 1 :(得分:-1)
要使用凭据启用跨域请求,您的服务器应支持CORS。启用CORS后,您的客户端代码可以将withCredentials
集添加到true
以在请求中包含Cookie。