当jQuery.ajax发送GET时,Ext.Ajax.request发送OPTIONS请求跨域

mar*_*vpc 9 javascript ajax jquery sencha-touch

我有一个Sencha Touch应用程序使用Ext.Ajax.request调用我的Web服务跨域.由于我构建了Web服务,因此我已启用它来访问跨域请求.然而,Ext首先发送OPTIONS请求作为握手然后发送GET请求,而jQuery.ajax只发送一个GET请求.由于我无法控制的情况,托管服务提供商不支持OPTIONS请求.目前,我已经使用jQuery进行ajax请求,并使用Sencha Touch进行应用程序的其余部分.我真的不想为此加载jQuery库.

任何人都可以解释为什么Ext.Ajax发送OPTIONS请求并且有没有办法让它只发送一个GET?

谢谢

Han*_*ing 11

Ext.Ajax.request配置中,设置useDefaultXhrHeader为false.这将阻止额外的OPTIONS请求.

根据文件:

将此设置为false,以便不向每个请求发送默认的Xhr标头(X-Requested-With).在进行CORS(跨域)请求时,应将其设置为false.

我的经验是OPTIONS调用消失了,我得到了我预期的POST动词.


小智 5

Ext.Ajax.useDefaultXhrHeader = false

之前

    Ext.Ajax.request({
        url: 'www.yourUrl.com',
        .....
    });
Run Code Online (Sandbox Code Playgroud)