禁用来自客户端脚本的 OPTIONS 请求

Posted

技术标签:

【中文标题】禁用来自客户端脚本的 OPTIONS 请求【英文标题】:Disabling OPTIONS request coming from Client Side Script 【发布时间】:2018-08-13 10:50:10 【问题描述】:

如何禁用来自服务器端脚本(php)的 OPTIONS 请求..??当我通过 Angular 将数据发布为 POST 时,另一种方法 OPTIONS 也在服务器端通过谷歌搜索发现它是 CORS 作为预检请求的强制性要求。有没有办法从后端服务器端脚本(例如 PHP)处理这种类型的 OPTIONS?

【问题讨论】:

【参考方案1】:

如果前端和后端服务器不在同一个域中,则无法阻止客户端发送 CORS 请求。如果需要,所有浏览器都会发出 CORS 请求

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

如果您禁用 OPTIONS 方法服务器端,这意味着 CORS 请求将不再起作用,这意味着您必须将 angular front 和 PHP API 放在同一个域中才能使您的网站正常工作。

【讨论】:

面临的问题是,当我尝试将数据发布到 API 时,两个调用将返回后端,一个作为 OPTIONS,第二个作为普通 POST,因此数据被多次插入让人很头疼的。有什么办法可以解决这个问题? 确保在您的 PHP 中,如果当前请求的方法是 OPTIONS,则只返回 CORS 标头而不做其他任何事情

以上是关于禁用来自客户端脚本的 OPTIONS 请求的主要内容,如果未能解决你的问题,请参考以下文章

OPTIONS 请求身份验证

python3实现的rtsp客户端脚本

如何避免在 express.js auth 中间件中捕获 HTTP OPTIONS 请求

客户端ajax请求为实现Token验证添加headers后导致正常请求变为options跨域请求解决方法

有没有办法在客户端禁用字节范围请求?

HTTP中的OPTIONS请求