如何阻止Backbone.js发送OPTIONS请求
How can I prevent Backbone.js from sending OPTIONS request?
我的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.com
的DELETE
请求。如果服务器处理了这个问题,响应了浏览器,然后浏览器告诉JS引擎没有访问控制头,那将是非常糟糕的。内容将已被删除。
所以你需要一个飞行前的许可。
所以这不是在浪费时间。你不能禁用它。你只需要在有权限的情况下回复它。
相关文章:
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 有没有一种方法可以防止img get请求使用css或js发生
- 从ajax请求中获取javascript对象
- JSONP请求返回结果,但也触发error_callback
- 如何阻止Backbone.js发送OPTIONS请求
- jQuery.ajax't发送带有OPTIONS请求的Authorization标头
- 对SOAP服务的Preflight OPTIONS请求不起作用
- Ext.Ajax.request 发送 OPTIONS 请求跨域,当 jQuery.ajax 发送 GET 时
- AngularJS对跨源资源执行OPTIONS HTTP请求=>错误401
- rails应用程序中的AJAX请求错误:xhr.send((options.hasContent&&op
- 在angular js中添加标头时,HTTP GET请求更改为OPTIONS
- Tomcat 8没有响应来自CriOS的OPTIONS请求
- if - modified - since标头使CORS OPTIONS请求失败
- 为什么发送多个OPTIONS请求,即使Access-Control-Allow-Origin设置为*
- 为什么经过验证的CORS请求的preflight OPTIONS请求在Chrome中工作,而在Firefox中不起作用?
- 在本地使用Google Chrome浏览器禁用OPTIONS请求
- 同时使用http请求、承诺、ng-options和工厂或服务
- CORS:为什么我的浏览器不;t发送OPTIONS飞行前请求
- setRequestHeader Content-Type导致POST请求变成OPTIONS