使用ExtJS的CORS返回错误405(方法不允许)

时间:2014-07-22 12:17:17

标签: javascript ajax http extjs cors

我尝试使用CORS使用ExtJS从另一个WS获取数据。 调用此请求的页面通过HTTPS加载,请求的页面为HTTP。

Ext.Ajax.request({
  url: 'http://MYDESTINATIONURL',
  method: 'GET',
  disableCaching: false ,
  useDefaultXhrHeader: false,
  cors: true,
  success: function(response) {
    console.log('SUCCESS!');
  },
  failure: function(response) {
    console.log('FAILURE!: '+response.getAllResponseHeaders());
  }
});

此请求生成一个带有405(Method not Allowed)状态的OPTIONS方法。 有关请求的更多详细信息:     请求方法:选项     状态代码:405方法不允许

Request Headers
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:pt-PT,pt;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:x-requested-with
Access-Control-Request-Method:GET
Cache-Control:max-age=0
Connection:keep-alive
Host:MYDESTINATIONURL
Origin:https://localhost
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)         Chrome/35.0.1916.153 Safari/537.36

Response Headers
Access-Control-Allow-Headers:X-Requested-With,Content-Type
Access-Control-Allow-Origin:*
Access-Control-Request-Method:POST,GET,PUT,DELETE,OPTIONS
Allow:GET
Content-Length:1565
Content-Type:text/html; charset=UTF-8
Date:Tue, 22 Jul 2014 12:06:02 GMT
Server:Microsoft-HTTPAPI/2.0

我认为标题符合CORS。请求包含Origin标头,响应包含-Allow-Origin标头。 服务器支持CORS。 是什么导致错误?

错误: 选项http:// MYDESTINATIONURL 405(方法不允许) XMLHttpRequest无法加载http:// MYDESTINATIONURL。无效的HTTP状态代码405

1 个答案:

答案 0 :(得分:0)

我遇到了与上面提到的相同的问题,但是在我的应用程序初始化期间通过添加以下两行来解决它:

Ext.Ajax.useDefaultXhrHeader = false;
Ext.Ajax.cors = true;

在此之前,我尝试在我的商店useDefaultXhrHeader上设置corsAjaxProxy参数,但没有成功。