gpt4 book ai didi

导致 PREFLIGHT 的 HTTP header - 说明?

转载 作者:可可西里 更新时间:2023-11-01 16:09:36 33 4
gpt4 key购买 nike

简单请求是满足以下条件的请求:

  • HTTP 方法匹配(区分大小写)以下之一:

    • 负责人
    • 获取
    • 发布
  • HTTP header 匹配(不区分大小写):

    • 接受
    • 接受语言
    • 内容语言
    • 最后的事件 ID
    • Content-Type,但前提是值为以下之一:
      • 应用程序/x-www-form-urlencoded
      • 多部分/表单数据
      • 文本/纯文本

但是看着这个test page这不会导致预检请求:

一般:

Remote Address:69.163.243.142:80
Request URL:http://aruner.net/resources/access-control-with-get/
Request Method:GET
Status Code:200 OK

请求 header

Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,he;q=0.6
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:aruner.net
Origin:http://arunranga.com
Pragma:no-cache
Referer:http://arunranga.com/examples/access-control/simpleXSInvocation.html
User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36

响应 header

Access-Control-Allow-Origin:http://arunranga.com
Connection:Keep-Alive
Content-Type:application/xml
Date:Sat, 26 Sep 2015 09:00:26 GMT
Keep-Alive:timeout=2, max=100
Server:Apache
Transfer-Encoding:chunked

迂腐地看一下 request 部分,在前面的标准部分中有许多 不是 的 header :

  • Cache-Control 不在列表中
  • 连接 不在列表中
  • DNT 不是不在列表中
  • User-Agent 不在列表中
  • Accept-Encoding 不在列表中

我知道那些更多的是“通用”标题。 但是accept-language

也是如此

问题

我在这里错过了什么?根据标准部分,带有这些 header 的请求应该导致预检请求。

最佳答案

查看您的代码:

    invocation.open('GET', url, true);
invocation.onreadystatechange = handler;
invocation.send();

您实际上并未设置任何自定义 header 。例如

    invocation.setRequestHeader("X-Requested-With", "XMLHttpRequest");

因此不会有预检。默认浏览器 header 不算。预检机制仅用于确保接收站点允许跨域传递任何自定义 header ,例如我上面示例中的 header 。

关于导致 PREFLIGHT 的 HTTP header - 说明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32795489/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com