在phonegap中,使用jQuery AJAX调用PHP文件时遇到问题。调用文件时发生的错误是:
所请求的资源上没有“ Access-Control-Allow-Origin”标头
谷歌表示要将这段代码header('Access-Control-Allow-Origin: *');放在当前的PHP文件头中。我将代码放在标题中,但仍然没有任何更改。我已经附上了我的jsfidde。
header('Access-Control-Allow-Origin: *');
文件connectionsqlphp.php代码在这里
connectionsqlphp.php
<?php header('Access-Control-Allow-Origin: *'); header('Content-Type: application/json'); echo "hi"; ?>
只要在config.xml中正确配置了访问源,在phonegap / cordova中就不会出现跨源问题。
如果您错过一些CORS标头,则在浏览器中进行测试时通常会收到此消息。
header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST');
但是再一次,您不需要这些头用于phonegap应用程序。
当您这样做时echo "hi";,您不是在发送json,而是发送文本“ hi”。(仅在标头中写入json不会格式化您回显的内容)。
echo "hi";
我认为您应该$.get在javascript中使用并header('Content-Type: application/json');从php中删除,以便该应用程序期望一个简单的文本,或者修改您的php以真正发送JSON。
$.get
header('Content-Type: application/json');
例如:
echo "{message:\"hi\"}";