【问题标题】:Javascript make ajax request without session cookieJavascript在没有会话cookie的情况下发出ajax请求
【发布时间】:2015-11-08 10:06:45
【问题描述】:

我在火狐。 javascript中有没有办法只使用自定义标头发出http请求?即没有 cookie 字段或用户代理或任何东西,只有我的 js 代码指定的内容。

应该是基础js而不是jquery之类的库。

例如,尝试发送没有 'Cookie' 标头的 Http GET,我已经尝试过:

var myRequest = new XMLHttpRequest();
myRequest.open("GET", "http://asite.com");
myRequest.setRequestHeader("Cookie", '');
myRequest.send();

但是我查看了开发者控制台,请求仍然与会话 cookie 一起发送。我也试过了:

myRequest.setRequestHeader("Cookie", null);

【问题讨论】:

  • 你看过here吗?
  • @chayasan srry 我应该说,我更喜欢它是基本的 javascript
  • @chayasan 那里有一些非 jquery,但它似乎不能保证将存在的唯一标头是我指定的标头,而是使用 setRequestHeader() 修改/添加现有的一。
  • 您可以在 beforeSend 方法中使用 setRequestHeader() 或创建一个标头对象并分配您的自定义键、值对。
  • @user238905 我试过了,但它在 'Cookie' 标头上不起作用。

标签: javascript ajax firefox fetch-api


【解决方案1】:

您可以使用fetch() 方法,该方法默认不包含cookie(由于credentials 在大多数使用场景中默认为false)。

【讨论】:

    【解决方案2】:

    阅读:https://fetch.spec.whatwg.org/#forbidden-header-name

    这是可以在 xmlhttprequest 中修改/删除的标头列表:

    Accept-Charset Accept-Encoding Access-Control-Request-Headers Access-Control-Request-Method Connection Content-Length Cookie Cookie2 Date DNT Expect Host Keep-Alive Origin Referer TE Trailer Transfer-Encoding Upgrade Via 或以 Proxy-Sec- 开头(包括当它只是 Proxy-Sec- 时)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2017-09-15
      • 2011-09-02
      • 2012-11-01
      • 1970-01-01
      • 2020-03-23
      相关资源
      最近更新 更多