我正在Ajax.request使用Sencha Touch 2应用程序(包装在PhoneGap中)到远程PHP服务器。
Ajax.request
服务器的响应如下:
XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地http://localhost:8888不被访问控制允许来源允许的。
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文件中。
Header set Access-Control-Allow-Origin *
应当注意,这实际上会禁用CORS保护,这 很可能使您的用户受到攻击 。如果您不知道自己是否特别需要使用通配符,则不要使用它,而应该将特定域列入白名单:
<?php header('Access-Control-Allow-Origin: http://example.com') ?>