javascript - Access-Control-Allow-Origin 不允许来源

标签 javascript ajax cors xmlhttprequest cross-domain

我正在向 Sencha Touch 中的远程 PHP 服务器发出 Ajax.request 2 个应用程序(包含在 PhoneGap 中)。

服务器的响应如下:

XMLHttpRequest cannot load http://nqatalog.negroesquisso.pt/login.php. Origin http://localhost:8888 is not allowed by Access-Control-Allow-Origin.

我该如何解决这个问题?

最佳答案

不久前我写了一篇关于这个问题的文章,Cross Domain AJAX .

如果您可以控制响应服务器,则处理此问题的最简单方法是为以下内容添加响应 header :

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') ?>

关于javascript - Access-Control-Allow-Origin 不允许来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143093/

相关文章:

javascript - 预检响应无效(重定向),浏览器继续使用 OPTION 方法

javascript - 未捕获异步 javascript 中引发的异常

javascript - Titanium Studio,JavaScript 和 SQL 错误...无法弄清楚

javascript - 在 Google Chrome 扩展中添加事件监听器

javascript - onclick 事件不适用于重新加载元素

javascript - 按钮上的 onclick 事件在 ajax 调用收到的 block 上不起作用

javascript - 使用 XMLHttpRequest 时未启用 COR?

javascript - 当原型(prototype)包含对象时访问 `this` 值?

php - 站点自动切换

NGINX 仅为 `api` 子域设置 CORS header