我正在尝试使用Phonegap 3.1创建一个Android应用程序.该应用程序需要从我的远程服务器检索数据,该服务器正在运行Apache,其中Header设置了Access-Control-Allow-Origin“*”指令,用于应用程序应从中提取数据的URI.我有< access subdomains ='true'url ='*'/>在Phonegap的config.xml文件中设置.如果我将网页放入与服务器不同的本地Apache目录(不同物理位置的不同域上的不同机器)并从Chrome调用它,但是当我尝试调用它时,下面的代码可以运行并运行“成功”功能通过Phonegap,它会抛出一个不太有用的错误{“readystste”:0,“responseText”:“”,“status”:0,“statusText”:“error”}. “readystate”:0看起来可能是一个只在Phonegap中发生的访问或跨站点脚本错误,所以我愿意相信这是我需要配置的东西,但我很难尝试弄清楚是什么.
感谢您的任何帮助,您可以提供.我需要让它运行起来,并且已经在网上搜索了一个星期,试图让它运行起来.
<!DOCTYPE HTML>
<HTML>
<HEAD>
<Meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="css/affirmation.css">
<script src="js/jquery-1.10.1.min.js"></script>
<script>
$.support.cors = true;
$(document).ready(function(){
$.ajax({
type: 'POST',
url: 'http://www.remote.server/info/API',
datatype: 'json',
data: JSON.stringify(
{ method: 'content',
params: [
'text passed to function on server'
],
id: '1' }
),
success: function(response, textstatus, jqxhr) {
$('#graf1').text(JSON.stringify(response));
$('#graf3').text(JSON.stringify(textstatus));
$('#graf6').text(JSON.stringify(jqxhr));
},
error: function(jqxhr, textstatus, errorthrown) {
$('#graf1').text(JSON.stringify(jqxhr));
$('#graf3').text(JSON.stringify(textstatus));
$('#graf6').text(JSON.stringify(errorthrown));
}
});
});
</script>
</HEAD>
<BODY>
<DIV ID="header">JSON Server Test</DIV>
<DIV ID="content">
<DIV ID="graf1" CLASS="bodytext"></DIV>
<DIV ID="graf3" CLASS="bodytext"></DIV>
<DIV ID="graf6" CLASS="bodytext"></DIV>
</BODY>
</HTML>
解决方法:
尝试将< access origin =“*”subdomains =“true”/>在www / config.xml文件中,按照:http://cordova.apache.org/docs/en/3.1.0/guide_appdev_whitelist_index.md.html#Whitelist%20Guide
在你的问题中,你有url而不是origin.
我想到的另一件事是你用模拟器进行测试吗?如果是这样,您使用的是远程服务器的完整URL还是仅使用localhost?因为模拟器上的localhost将映射回模拟器本身而不是您在计算机上运行的服务器.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。