一尘不染

Phonegap在请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问原始“空”

ajax

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

所请求的资源上没有“ Access-Control-Allow-Origin”标头

谷歌表示要将这段代码header('Access-Control-Allow-Origin: *');放在当前的PHP文件头中。我将代码放在标题中,但仍然没有任何更改。我已经附上了我的jsfidde

文件connectionsqlphp.php代码在这里

<?php

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

?>

阅读 323

收藏
2020-07-26

共1个答案

一尘不染

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

如果您错过一些CORS标头,则在浏览器中进行测试时通常会收到此消息。

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

但是再一次,您不需要这些头用于phonegap应用程序。

当您这样做时echo "hi";,您不是在发送json,而是发送文本“ hi”。(仅在标头中写入json不会格式化您回显的内容)。

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

例如:

echo "{message:\"hi\"}";
2020-07-26