Access不允许使用Origin
我正在向Sencha Touch 2应用程序中的远程PHP服务器(包装在PhoneGap中)中创建一个Ajax.request
。
服务器的响应如下:
XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。 Access-Control-Allow-Origin不允许源http://localhost:8888
。
我该如何解决这个问题?
我在前面写了一篇关于这个问题的文章,Cross Domain AJAX。
如果控制了响应服务器,最简单的方法就是为以下内容添加响应标头:
Access-Control-Allow-Origin: *
这将允许跨域Ajax。 在PHP中,您需要修改响应,如下所示:
<?php header('Access-Control-Allow-Origin: *'); ?>
您可以将Header set Access-Control-Allow-Origin *
设置到Apache配置或htaccess文件中。 它就像一个魅力。
从评论中,这是一个重要的注意事项:通配符将允许任何域向您的主机发送请求。 我建议用将要运行脚本的特定域替换星号。
如果您无法控制服务器,只需将此参数添加到Chrome启动器即可:-- --disable-web-security
。
请注意,我不会将此用于正常的“网上冲浪”。 有关参考资料,请参阅此帖子:在Chrome中停用相同的来源政策。
您使用Phonegap实际构建应用程序并将其加载到设备上,这不会成为问题。
如果您使用Apache,只需添加:
<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin: *
</ifModule>
在你的配置中。 这将导致您的网络服务器的所有响应都可以从互联网上的任何其他站点访问。 如果您打算只允许您的主机上的服务被特定的服务器使用,您可以将*
替换为始发服务器的URL:
Header set Access-Control-Allow-Origin: http://my.origin.host
链接地址: http://www.djcxy.com/p/96799.html
上一篇: Origin is not allowed by Access
下一篇: Trying to add collision detection without spritekit with UICollisionBehavior