Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
jqueryajaxcors+;HttpOnly Cookie_Jquery_Ajax_Cookies_Cross Domain - Fatal编程技术网

jqueryajaxcors+;HttpOnly Cookie

jqueryajaxcors+;HttpOnly Cookie,jquery,ajax,cookies,cross-domain,Jquery,Ajax,Cookies,Cross Domain,我已经让CORS在我当前的项目中工作,尽管有一件事我似乎无法正常工作,那就是cookies 现在我得到了cookie,服务器发出并发送cookie,firefox接受cookie,我可以在firebug cookies部分看到它。但是,当我对该服务进行后续调用时,它似乎不会发送标头中的cookie GET /some/entity/ HTTP/1.1 Host: localhost:1837 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5

我已经让CORS在我当前的项目中工作,尽管有一件事我似乎无法正常工作,那就是cookies

现在我得到了cookie,服务器发出并发送cookie,firefox接受cookie,我可以在firebug cookies部分看到它。但是,当我对该服务进行后续调用时,它似乎不会发送标头中的cookie

GET /some/entity/ HTTP/1.1
Host: localhost:1837
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: */*
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://localhost:6879
Origin: http://localhost:6879
我需要对我的ajax调用做一些特殊的处理吗

var ajaxOptions = {
    url: serviceResourceUrl,
    type: "get",
    dataType: "json",
    success: successCallback,
    error: failedCallback,
    xhrFields: { withCredentials: true }
};

$.ajax(ajaxOptions);

尝试使用beforeSend属性而不是xhrFields。就你而言:

var ajaxOptions = {
    url: serviceResourceUrl,
    type: "get",
    dataType: "json",
    success: successCallback,
    error: failedCallback,
    beforeSend: function(xhr){
      xhr.withCredentials = true;
    }
};

$.ajax(ajaxOptions);

您可以在这里了解更多信息:

我本来是想用这种方式做的,但根本不起作用。在xhrFields上看到一篇帖子:{…}这对我检索cookies很有用。我将再次尝试其他方法。只是尝试了一下,仍然没有运气。cookie可以在firebug中看到,它具有正确的过期和域。在服务上进行调试时,没有cookies:(抱歉,所有的评论,但只是仔细检查了域,并在firebug中报告了localhost(部分正确),但是开发中的服务实际上是在localhost:1873上的。如果我尝试编辑cookie并将该域放入,它只会忽略cookie,并且似乎只保留localhost。服务器似乎将其正确设置为…那么这可能是firefox的错误吗?给出答案,尽管xhrFields{}works和beforeSend:…对我来说不是。这里的根本问题是通过不让服务器设置cookies域并让客户端推断来解决的。