在 phonegap 中,我在使用 jQuery AJAX 调用 PHP 文件时遇到问题。调用文件时出现的错误是:
No 'Access-Control-Allow-Origin' header is present on the requested resource
Google 表示将这段代码 header('Access-Control-Allow-Origin: *');
放在当前的 PHP 文件头中。我把代码放在标题中,但仍然没有变化。我附上了我的 jsfidde与它。
文件connectionsqlphp.php
代码在这里
<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
echo "hi";
?>
最佳答案
只要您在 config.xml 中正确配置 access origin,phonegap/cordova 中就不会有跨源问题。
如果您错过了一些 CORS header ,那么在从浏览器进行测试时收到此消息是正常的。尝试添加:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
但是再次重申,对于 phonegap 应用程序,您不需要这些 header 。
当您执行 echo "hi";
时,您发送的不是 json,而是文本“hi”。 (仅在 header 中写入 json 不会格式化您回显的内容)。
我认为您应该在 javascript 中使用 $.get
并从 php 中删除 header('Content-Type: application/json');
以便应用需要一个简单的文本或修改您的 php 以真正发送 JSON。
例如:
echo "{message:\"hi\"}";
关于php - 请求的资源上存在 Phonegap No 'Access-Control-Allow-Origin' header 。因此不允许访问 Origin 'null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21773303/