无法使用Cordova发送跨域请求。白名单不起作用

时间:2015-01-16 00:01:19

标签: android cordova whitelist

我无法使用Cordova进行跨域请求。花了好几个小时,仍然不确定是什么问题。也许有人处理过这样的问题?谢谢!

js文件:

//works fine, test.html - local file
  $.get("test.html",function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });

//does not do anything
  $.get("http://www.stackoverflow.com",function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });

项目配置文件:

..
<access origin="stackoverflow.com"/>
..

也试过:

 <access origin="www.stackoverflow.com"/>
 <access origin="http://www.stackoverflow.com"/>
 <access origin="*"/>

的AndroidManifest.xml:

..
<uses-permission android:name="android.permission.INTERNET" />
..

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题......经过一些研究后我发现了一种方法。 使用jQuery $ .ajax发出“GET”请求 (实际上,我试图访问SOAP WebService,然后我发现这种方式使用POST或GET请求) 在JSFiddle进行测试 你仍然需要访问来源...

Obs:除非您尝试获取的页面允许您执行此操作,否则您的请求将无效。示例页面允许访问,因此...尝试从您的Cordova应用程序访问它。

$.ajax({
            type: 'GET',
            url: "http://anytime.ueuo.com/http-return.php",
            crossDomain: true,
            success: function (data, textStatus, jqXHR) {
                alert("Ok!");
                $("#retorno").html(data);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert("Wait, take a look: " + textStatus + ", " + errorThrown);
            },
            complete: function (jqXHR, textStatus ) {
                alert("Status: " + textStatus);
            }
        });

Obs-2:您的代码返回错误: XMLHttpRequest无法加载http://www.stackoverflow.com/请求的资源上没有“Access-Control-Allow-Origin”标头。因此不允许来源“http://localhost:8383”。 (02:18:52:813 |错误,javascript)在public_html / index.html 。这就是您需要使用预先配置的页面进行测试的原因。
抱歉我的英语不好' - '