在Sencha Touch 2中加载商店时,如何停止附加选项http请求? [英] When loading a store in Sencha Touch 2, how can I stop the additional OPTIONS http request?

查看:30
本文介绍了在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请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆