Phonegap请求的资源上没有“Access-Control-Allow-Origin”标头。因此不允许原点'null'访问

时间:2014-02-14 07:30:20

标签: php jquery ajax json cordova

在phonegap中,我在使用jQuery AJAX调用PHP文件时遇到了问题。调用文件时发生的错误是:

  

请求的资源

上没有'Access-Control-Allow-Origin'标头

Google表示将此代码header('Access-Control-Allow-Origin: *');放在当前的PHP文件头中。我把代码放在标题中,但仍然没有变化。我附上了我的jsfidde

文件connectionsqlphp.php代码在这里

<?php 

header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
echo "hi";

?>

1 个答案:

答案 0 :(得分:9)

只要在config.xml中正确配置访问源,就不会在phonegap / cordova中出现交叉原点问题。

如果您错过了一些CORS标题,那么在从浏览器进行测试时,您会收到此消息是正常的。请尝试添加:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');

但是再一次,你不需要那些标题用于手机应用程序。

当您执行echo "hi";时,您不会发送json,而是发送文本“hi”。 (只是在标题中写入json不会格式化你回显的内容)。

我认为你应该在javascript中使用$.get并从php中删除header('Content-Type: application/json');以便应用程序需要一个简单的文本或修改你的php来真正发送JSON。

代表:

echo "{message:\"hi\"}";