Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phonegap赢得';无法连接到外部数据库_Javascript_Php_Android_Html_Cordova - Fatal编程技术网

Javascript Phonegap赢得';无法连接到外部数据库

Javascript Phonegap赢得';无法连接到外部数据库,javascript,php,android,html,cordova,Javascript,Php,Android,Html,Cordova,我一直在尝试使用Phonegap连接到我的数据库,并向连接到数据库的PHP文件发出ajax请求。然而,这些信息并没有显示出来 对于PHP文件,我只是建立一个连接并创建一个json字符串,稍后使用 Javascript文件script.js如下所示: var request = new XMLHttpRequest; request.open('GET' , 'http://websiteurl.com/example.php/', false); request.send(null); cons

我一直在尝试使用Phonegap连接到我的数据库,并向连接到数据库的PHP文件发出ajax请求。然而,这些信息并没有显示出来

对于PHP文件,我只是建立一个连接并创建一个json字符串,稍后使用

Javascript文件script.js如下所示:

var request = new XMLHttpRequest;
request.open('GET' , 'http://websiteurl.com/example.php/', false);
request.send(null);
console.log(request);

if(request.status == 0)
console.log(request.responseText);

var firstname;
var obj = JSON.parse(request.responseText);
console.log(obj);
firstname       = obj[0].Firstname;

document.getElementById("firstname").innerHTML = firstname;
例如,这在我的服务器上正常工作,并且在我的页面上正确显示。HTML页面将加载javascript文件,并应在数据库中显示firstname中的信息,但当前未显示任何内容

 <script src="js/script.js"> </script>

 <div id="Info">
    <p>
        <strong>Firstname:</strong>
        <span id = "firstname"></span>
  </p>
</div>


名字:

我已尝试更改phonegap config.xml和androidmanifest.xml中的权限,但似乎没有任何效果。

您需要遵守


您很可能需要提出跨域请求-希望可以帮助您。

我已经使用了源权限,并将其设置为*。喜欢这是正确的还是需要其他东西?@patrick:请共享request.statusText和request.status的控制台日志。另外,请注意,主线程上的同步请求已被弃用。我对此表示怀疑,但您的请求很有可能是强制异步的。在我的服务器上测试时,我只得到statustext en status的“ok”和“200”。虽然我在config.xml中发现了一件事,如果我试图在platforms\android\res\xml中更改访问源,它将返回localhost。现在其中有2个,如果我删除或更改其中一个,它将在构建过程后立即返回。您应该在项目根目录下的config.xml中修改access origin(或在www中修改access origin,具体取决于cordova的版本),然后在构建项目时,会自动对文件platforms/android/res/config.xml进行更改。你是对的,不需要像这个答案中建议的那样将CORS头添加到php中。但是+1对于异步/同步的注释,你真的应该将代码更改为使用异步调用和回调。你得到了什么错误?您是否可以显示您在config.xml和androidmanifest.xml中更改权限所做的工作?