小编典典

Access-Control-Allow-Origin不允许起源

ajax

我正在Ajax.request使用Sencha Touch
2应用程序(包装在PhoneGap中)到远程PHP服务器。

服务器的响应如下:

XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地http://localhost:8888不被访问控制允许来源允许的。

我该如何解决这个问题?


阅读 264

收藏
2020-07-26

共1个答案

小编典典

不久前,我写了一篇有关此问题的文章Cross Domain
AJAX

如果您控制响应服务器,最简单的方法是为以下项添加响应标头:

Access-Control-Allow-Origin: *

这将允许跨域Ajax。在PHP中,您将需要像这样修改响应:

<?php header('Access-Control-Allow-Origin: *'); ?>

您可以将Header set Access-Control-Allow-Origin *设置放入Apache配置或htaccess文件中。

应当注意,这实际上会禁用CORS保护,这 很可能使您的用户受到攻击
。如果您不知道自己是否特别需要使用通配符,则不要使用它,而应该将特定域列入白名单:

<?php header('Access-Control-Allow-Origin: http://example.com') ?>
2020-07-26