我在我的网站上开发了一款游戏,现在我正在使用Phonegap Build转换为应用程序。 Phonegap Build要求我从GIT存储库中提取代码,这是有效的,但这也意味着我现在正在使用Firefox在我的(本地)计算机上编辑和测试我的文件。
我的代码在我的网站上对这个PHP文件进行了AJAX调用:
$.ajax({
type: "POST",
url: "mysite.com/loadlocchars.php",
data: 'locid='+locid,
dataType: "json",
success: function(data)
{
$.each(data, function(key,i)
{
// do stuff
});
}
});
即使我添加了
,我仍然会收到此CORS错误header("Access-Control-Allow-Origin: *");
作为本网站指示的PHP文件中的第一行:
http://enable-cors.org/server_php.html
阻止跨源请求:同源策略不允许在mysite.com/loadlocchars.php上读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin')。
域名将URL转发到我的GoDaddy共享主机,但我怀疑它与它有什么关系。我宁愿不按照其他SO答案推荐使用JSONP。
我错过了什么吗?
答案 0 :(得分:2)
之前的回应对我有所帮助,但没有回答这个问题。
我想出来了。有同样的问题。
是的,它适用于phonegap,但在本地,Godaddy共享主机拒绝接听电话。
要使其与GoDaddy一起使用,请执行以下操作:
第1步:从PHP文件中删除此代码:
header("Access-Control-Allow-Origin: *");
第2步:将此代码放入.htaccess文件
Header set Access-Control-Allow-Origin "*" //opens to any server
Header set Access-Control-Allow-Origin: http://localhost //opens for just localhost
现在你很高兴。
答案 1 :(得分:0)
问题解决了! GoDaddy共享主机,域转发,甚至在我的PHP文件开头添加CORS Access-Control语句都与它无关。
我的浏览器没有在我的计算机上运行本地文件,但是当我使用PhoneGap构建编译并安装到我的iOS和Android设备时,脚本运行完美!事实上,我确实没有任何CORS / PHP语句就可以尝试它,并且它起作用了。
我现在很好奇为什么我的文件在我的本地计算机上运行时不起作用,但我想这完全是一个单独的S / O问题,我稍后会问。 : - )