我无法使用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" />
..
答案 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 。这就是您需要使用预先配置的页面进行测试的原因。
抱歉我的英语不好' - '