【问题标题】:(CORS) How does the browser know when to do a pre-flight request(CORS) 浏览器如何知道何时进行飞行前请求
【发布时间】:2015-09-03 01:47:10
【问题描述】:

所以我使用 CORS 已经有一段时间了,我只是阅读了它在幕后的工作原理。

我的问题是浏览器如何知道何时执行飞行前请求?

目前没有任何问题,因为浏览器似乎工作正常,我只是有点好奇。因为当我提出请求时,我没有给它任何关于它是否是 CORS 的信息,但它仍然知道要进行预飞行。

【问题讨论】:

    标签: javascript rest dom xmlhttprequest cors


    【解决方案1】:

    如果出现以下情况,浏览器将发送预检请求:

    • 您将自定义标头添加到您的请求中
    • 您使用 GET、HEAD 或 POST 以外的方法
    • 您使用带有异常 Content-Type 的 POST。

    更多详情:HTTP access control (CORS), Preflighted requests

    【讨论】:

    • 所以我猜这与它是否是 CORS 无关。视频中提到了这一点,但每个请求要么简单,要么不简单。简单请求是满足您上述条件的请求。非简单是不满足此要求的任何形式的请求。当浏览器发出非简单请求时,它会做出飞行前响应。这是一个浏览器功能,与 CORS 无关。不幸的是,我没有找到适当的链接来解释这一点,但如果有人正在阅读这篇文章,希望它会有所帮助!
    • 在 Firefox 上,当附加了 xhr.upload.onprogress 监听器时也会发出预检请求。
    猜你喜欢
    • 2019-11-13
    • 2013-08-02
    • 2016-06-28
    • 2018-05-19
    • 2017-05-14
    • 2019-05-23
    • 1970-01-01
    • 2015-03-09
    • 2014-09-14
    相关资源
    最近更新 更多