Jquery 未随AJAX请求发送cookie

Jquery 未随AJAX请求发送cookie,jquery,ajax,cookies,Jquery,Ajax,Cookies,我试图发送一个跨域AJAX请求,但我似乎无法获得认证cookie。请求正在从www.site.com/path发送到api.site.com/other/path。cookie的详细信息包括: 域:.site.com 路径:/ 发送:任何类型的连接 脚本可访问性:是 下面是AJAX请求: $.ajax({ type : 'POST', url : 'http://api.site.com/path', contentType : "appli

我试图发送一个跨域AJAX请求,但我似乎无法获得认证cookie。请求正在从www.site.com/path发送到api.site.com/other/path。cookie的详细信息包括:

域:.site.com 路径:/ 发送:任何类型的连接 脚本可访问性:是

下面是AJAX请求:

$.ajax({
    type        : 'POST',
    url         : 'http://api.site.com/path',
    contentType : "application/json",
    xhrFields   : {
        withCredentials: true
    },
    crossDomain : true,
    beforeSend  : function(xhr) {
        xhr.withCredentials = true
    },
    data        : JSON.stringify({
        'user_id' : 'id'
    }),
    success     : function() {
        alert('success');
    },
    error       : function(jqXHR, textStatus, errorThrown ) {
        alert('error');
    }
});
我控制cookie的创建和使用。显然,上面的一些细节是多余的,但我已经尝试了所有我能得到的,但没有成功。如果可能的话,我想把饼干带回http。我真的以为我能解决这个问题,但我显然错过了一些东西。非常感谢你的帮助

尝试以下操作:

  • 编写一个驻留在域b上的小型代理,并将您的请求转发到域a。您的浏览器将允许您调用代理,因为它与调用脚本位于同一服务器上

  • 然后,您可以将此代理配置为接受cookie名称和值参数,并将其发送到域a。但要使其正常工作,您需要知道cookie的名称和您在域上的服务器的值—a需要进行身份验证

  • 如果要获取JSON对象,请尝试改用JSONP请求。jQuery支持这些。但您需要更改域a上的服务,以便它返回有效的JSONP响应

  • 告诉我它是否有效。如果没有,我将寻找另一个解决方案