android 2.3.3上带有授权头和CORS的Ajax GET请求

android 2.3.3上带有授权头和CORS的Ajax GET请求,android,ajax,oauth,oauth-2.0,cors,Android,Ajax,Oauth,Oauth 2.0,Cors,我正试图在android 2.3.3上发出一个跨域GET请求。我正在服务器上使用CORS筛选器。我已经在chrome、firefox、iphone上测试过了,效果很好。在android 2.3.3中,飞行前的请求看起来不错,但实际的请求并没有发送原始标头。我很好地恢复了数据,但是ajax出错,状态为0。我试着把它改成一个帖子请求,结果成功了 以下是ajax代码: 以下是get的结果(不起作用) 以下是发送帖子的结果(有效) 我做了更多的测试,从等式中去掉了授权头,它与GET一起工作。不确定授权

我正试图在android 2.3.3上发出一个跨域GET请求。我正在服务器上使用CORS筛选器。我已经在chrome、firefox、iphone上测试过了,效果很好。在android 2.3.3中,飞行前的请求看起来不错,但实际的请求并没有发送原始标头。我很好地恢复了数据,但是ajax出错,状态为0。我试着把它改成一个帖子请求,结果成功了

以下是ajax代码:

以下是get的结果(不起作用

以下是发送帖子的结果(有效


我做了更多的测试,从等式中去掉了授权头,它与GET一起工作。不确定授权标头为什么会导致get请求失败。有什么想法吗?

我也有同样的问题,但这不是授权标头的问题,而是GET请求中缺少的原始标头的问题。这也是post请求起作用的原因——存在一个Origin头,并且Origin头对于CORS是必需的


重要的是选项飞行前调用有一个Origin头集。

我创建了一个简单的测试页面来测试CORS请求。你能在安卓系统中尝试一下你的请求,看看响应是什么吗:谢谢你的响应!正在向发送GET请求?id=6058740&httpstatus=200&methods=GET&headers=Authorization,启动自定义头XHR事件:loadstart启动XHR事件:readystatechange启动XHR事件:错误XHR状态:0 XHR状态文本:我得到了android 2.2、2.3和3.x的相同响应。值得一提的是,控制台日志会在3.x:E/browser(333)中返回此消息:console:XMLHttpRequest无法加载。访问控制不允许原点-允许原点。null:1该图表表明CORS支持应该在这些Android版本上工作:尽管这可能是一个边缘案例错误。我使用的是安卓4.0.3,它可以正常工作。也许你现在可以继续使用POST?谢谢你的关注。是的,使用post是我最终可能使用的解决方法。
$.ajax( {
    beforeSend: function (xhr, settings) {
        xhr.withCredentials = true;
        xhr.setRequestHeader('Authorization', 'Bearer myoathtoken');
    },
    dataType: "json",
    type: "GET",
    url: getMyUrl() + '/data.json',
    success: function(data) {
        alert("It works");
    }
});
OPTIONS http://test2.mydomain:9990/data.json HTTP/1.1
Host: test2.mydomain:9990
Accept-Encoding: gzip
Accept-Language: en-US
Access-Control-Request-Headers: Authorization, Accept
Cookie: mycookie=mycookieval
Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7
Referer: http://test.mydomain:9990/
User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; sdk Build/GRI34)         AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Origin: http://test.mydomain:9990
Access-Control-Request-Method: GET
Accept: text/xml, text/html, application/xhtml+xml, image/png, text/plain, */*;q=0.8

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Access-Control-Allow-Origin: http://test.mydomain:9990
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: HEAD, GET, OPTIONS, POST
Access-Control-Allow-Headers: Authorization, X-Requested-With, Origin, Accept, Content-Type
Content-Length: 0
Date: Fri, 03 Feb 2012 21:29:05 GMT

GET http://test2.mydomain:9990/data.json HTTP/1.1 
Host: test2.mydomain:9990
Accept-Encoding: gzip
Referer: http://test.mydomain:9990/
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; sdk Build/GRI34)        AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Cookie: mycookie=mycookieval
Authorization: Bearer oauthtoken
Accept: application/json, text/javascript, */*; q=0.01
Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Cache-Control: no-cache
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 03 Feb 2012 21:29:08 GMT
OPTIONS http://test2.mydomain:9990/data.json HTTP/1.1
Host: test2.mydomain:9990
Accept-Encoding: gzip
Accept-Language: en-US
Access-Control-Request-Headers: Authorization, Accept
Cookie: mycookie=mycookieval
Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7
Referer: http://test.mydomain:9990/
User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; sdk Build/GRI34) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Origin: http://test.mydomain:9990
Access-Control-Request-Method: POST
Accept: text/xml, text/html, application/xhtml+xml, image/png, text/plain, */*;q=0.8

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Access-Control-Allow-Origin: http://test.mydomain:9990
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: OPTIONS, POST, HEAD, GET
Access-Control-Allow-Headers: Authorization, X-Requested-With, Origin, Accept, Content-Type
Content-Length: 0
Date: Fri, 03 Feb 2012 21:21:30 GMT

POST http://test2.mydomain:9990/data.json HTTP/1.1
Host: test2.mydomain:9990
Accept-Encoding: gzip
Accept-Language: en-US
Cookie: mycookie=mycookieval
Authorization: Bearer oauthtoken 
Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7
Referer: http://test.mydomain:9990/
User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; sdk Build/GRI34) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Origin: http://test.mydomain:9990
Accept: application/json, text/javascript, */*; q=0.01
Content-Length: 0

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Access-Control-Allow-Origin: http://test.mydomain:9990
Access-Control-Allow-Credentials: true
Cache-Control: no-cache
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 03 Feb 2012 21:21:32 GMT