为什么Cookie头没有设置在phantomjs中的同域$ .ajax请求中?

时间:2014-05-15 13:11:46

标签: javascript jquery ajax cookies phantomjs

我通过jQuery的$.ajax(request)函数在同一个域中发出请求。不幸的是,Cookie标头从未设置(POSTGET),我不知道为什么。

如果我正确理解jQuery Ajax,则应根据页面cookie(如Cookie)设置document.cookie标头。我已跟踪document.cookie并且对我来说,似乎每次xhr响应都会正确更新(根据Set-Cookie标题)。但是在调试请求时,所有都没有设置Cookie标头。

我的请求创建方式的简化版本:

var request = {
    type: 'POST',
    data: 'theDataIsCorrect=true',
    async: false,
    url: '/a/relative/url/like/this?maybe=even&with=this',
    // withCredentials does not help (ignored on same domain request anyways)
    xhrFields: { withCredentials: true },
    beforeSend: function(jqXHR) { doStuff(); },
    error: function(jqXHR, textStatus, errorThrown) { errorHandling(); },
    complete: function(jqXHR, textStatus, errorThrown) { complete(); }
};
$.ajax(request);

我的脚本如何运作:

  1. 在浏览器中打开域名(暂无cookie)
  2. 通过$.ajax xhr请求登录(响应有Cookie)
  3. 通过$.ajax向我想要查看/修改/等的页面请求。 (请求错过Cookie标题)
  4. GO TO 3. || GO TO 5.
  5. 通过$.ajax
  6. 退出

    编辑:

    我使用phantomjs [1.9]作为浏览器。使用Firefox或Chrome时不会发生此问题。我发现了这个问题,有人在描述类似的行为:phantomjs - Cookie is not being sent for any XHR/POST/GET AJAX requests

0 个答案:

没有答案