微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否对同一源域的 ajax 调用进行了预检请求?

如何解决是否对同一源域的 ajax 调用进行了预检请求?

answer 声明,X-Requested-With 标头防止 CSRF 攻击的一种方式是,如果服务器不允许,那么现代浏览器将不允许 javascript 代码添加此标头。如果标头存在,服务器可以确保请求不是来自用户可能打开的另一个页面

据我了解,浏览器确定在 ajax 请求中是否允许自定义标头的方式是通过发出预检请求。然后服务器以标头 Access-Control-Allow-Headers 响应。其中包含相关请求允许的标头列表。因此,如果服务器返回一个空列表,则 CORS ajax 调用不能存在 xhr 标头。表示不同的来源。

所以我的问题是,如果原点相同,是否会触发预检请求。因为如果是,那么服务器会说不要添加任何标头,如果浏览器不添加,那么来自其自身来源的请求将与其他来源无法区分。

解决方法

所以我的问题是如果来源相同,是否会触发预检请求。

不,不是。

因为如果是,那么服务器会说不要添加任何标头,如果浏览器不添加,那么来自其自身来源的请求将与另一个来源无法区分。

浏览器不发送预检请求不会阻止服务器测试实际请求头并在它不存在时抛出错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。