Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用cookie发送跨域ajax请求_Javascript_Ajax_Node.js_Cookies_Saas - Fatal编程技术网

Javascript 如何使用cookie发送跨域ajax请求

Javascript 如何使用cookie发送跨域ajax请求,javascript,ajax,node.js,cookies,saas,Javascript,Ajax,Node.js,Cookies,Saas,我正在开发一个SaaS应用程序,用户在我的SaaS系统中创建帐户并登录。然后,SaaS应用程序有一个JS代码,客户应该在他们的网站中包含这个JS代码,在代码中,我需要向我的SaaS域发送一个POSTAjax请求(这是一个跨域请求) 问题是,为了共享登录用户的凭据,我必须将with Credentials属性和访问控制允许凭据标题设置为true 我不确定这是不是一个好办法?也许我应该使用另一种方法,比如使用OAuth或其他东西来共享登录用户的凭据 如有任何建议,我将不胜感激 您需要使用JSONP作

我正在开发一个SaaS应用程序,用户在我的SaaS系统中创建帐户并登录。然后,SaaS应用程序有一个JS代码,客户应该在他们的网站中包含这个JS代码,在代码中,我需要向我的SaaS域发送一个
POST
Ajax请求(这是一个跨域请求)

问题是,为了共享登录用户的凭据,我必须将
with 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后,您的客户端代码可以添加
,并将凭据设置为
true
,以在请求中包含cookie。

JSONP
POST
动词?你认为有可能吗?我已经说过我知道有身份证的人做什么。我需要另一个解决方案…1)您的用户是如何登录的?通过cookies(这是您的标题所建议的)或
身份验证
标题(也称为htaccess-我理解
访问控制允许凭据
的作用)。2) 你目前的方法是否有效?