无法使用 Cordova 发送跨域请求。白名单不起作用
Cannot send cross domain requests with Cordova. Whitelisting doesn't work
我无法使用 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.whosebug.com",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
项目配置文件:
..
<access origin="whosebug.com"/>
..
也尝试过:
<access origin="www.whosebug.com"/>
<access origin="http://www.whosebug.com"/>
<access origin="*"/>
AndroidManifest.xml:
..
<uses-permission android:name="android.permission.INTERNET" />
..
我遇到了同样的问题...经过一些研究,我找到了解决这个问题的方法。
使用 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:您的代码 return 错误:
XMLHttpRequest 无法加载 http://www.whosebug.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8383' 因此不允许访问。 (02:18:52:813 | 错误,javascript)在 public_html/index.html。这就是您需要使用预配置页面进行测试的原因。
抱歉我的英语不好'-'
我无法使用 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.whosebug.com",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
项目配置文件:
..
<access origin="whosebug.com"/>
..
也尝试过:
<access origin="www.whosebug.com"/>
<access origin="http://www.whosebug.com"/>
<access origin="*"/>
AndroidManifest.xml:
..
<uses-permission android:name="android.permission.INTERNET" />
..
我遇到了同样的问题...经过一些研究,我找到了解决这个问题的方法。
使用 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:您的代码 return 错误:
XMLHttpRequest 无法加载 http://www.whosebug.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8383' 因此不允许访问。 (02:18:52:813 | 错误,javascript)在 public_html/index.html。这就是您需要使用预配置页面进行测试的原因。
抱歉我的英语不好'-'