如何阻止Backbone.js发送OPTIONS请求

How can I prevent Backbone.js from sending OPTIONS request?

本文关键字:OPTIONS 请求 发送 js 何阻止 Backbone      更新时间:2023-09-26

我的cordova应用程序使用backbone.js与我的服务器通信。由于该应用程序显然与我的API不在同一个域下运行,因此每个不重要的ajax请求都会在飞行前发送OPTIONS。我理解它为什么这么做。然而,我完全可以控制我自己的服务器!我确切地知道支持哪些http方法和标头。因此,OPTIONS请求不是在浪费时间吗?如何禁用它?

你说你知道它为什么发出请求,但为了给那些没有MDN的人提供一些上下文,描述了你将获得预先批准的请求的条件。

不,你不能禁用它。

作为客户端代码的作者,您知道要发出什么请求。

作为服务器端代码的作者,您知道要接受什么请求。

作为编写用户浏览器的公司,谷歌(或Mozilla、Opera等)不知道你是这两个网站的作者,也不知道你信任自己。他们不知道网站A要求浏览器向网站B发出的请求是无害的。

在CORS之前,作者只需要担心如何防御可能由链接和表单发起的CSRF攻击。

然后是XHR,突然http://evil.example.com上的JavaScript可以在启用withCredentials的情况下触发对http://victim.example.comDELETE请求。如果服务器处理了这个问题,响应了浏览器,然后浏览器告诉JS引擎没有访问控制头,那将是非常糟糕的。内容将已被删除。

所以你需要一个飞行前的许可。

所以这不是在浪费时间。你不能禁用它。你只需要在有权限的情况下回复它。