When loading a store in Sencha Touch 2, how can I stop the additional OPTIONS http request?(在Sencha Touch 2中加载商店时,如何停止附加选项http请求?)
问题描述
我正在用Sencha Touch 2编写一个应用程序,作为其中的一部分,我有许多商店使用AJAX代理和JSON阅读器从我的外部Web服务自动加载。该服务驻留在与客户端不同的域上,因此我必须在服务器上设置Access-Control-Allow-Origin才能使其工作。
在这种设置下一切工作都很顺利,但我使用Fiddler查看请求性能,并且我注意到我的Web服务的每个调用实际上都发出两次。一次作为OPTIONS请求,然后再次作为预期的GET。就我所知,OPTIONS请求没有任何用处--至少在我的设置中是这样--所以我想去掉它,以使加载性能更快。
有人知道这是怎么回事吗?如果我可以在代理上设置一个配置来关闭它,那就太好了,但我还没有在e上找到。
感谢您的关注!
推荐答案
我想通了,这一切都与sencha与其AJAX调用一起传递的x-Requested-With头有关。这篇博客文章(http://remysharp.com/2011/04/21/getting-cors-working/)深入到了细节,但简短的版本是,在一个奇怪的功能中,浏览器只在您的请求中包含任何自定义标题时才发送飞行前选项检查。如果您不向请求添加任何标头,并且只将其保留为纯文本,则GET将顺利完成,不会进行选项检查。
我深入研究了源代码,发现sencha确实有一个配置来控制是否发送x请求-只是在正常使用时不太公开。
Ext.Ajax.setUseDefaultXhrHeader(false);
我只是设置了在发出请求之前,它会删除x-REQUESTED-WITH,只有GET会发出。
这篇关于在Sencha Touch 2中加载商店时,如何停止附加选项http请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在Sencha Touch 2中加载商店时,如何停止附加选项http请求?
基础教程推荐
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 动态更新多个选择框 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01