原产地是不允许的 Access-Control-Allow-Origin

我愿意
Ajax.request

在远程服务器上 PHP 在申请中
https://en.wikipedia.org/wiki/Sencha_Touch
2 /包装成
http://en.wikipedia.org/wiki/PhoneGap
/.

服务器的答案将如下:

XMLHttpRequest 不能下载
http://nqatalog.negroesquisso.pt/login.php
. 起源
[url=http://localhost:8888]http://localhost:8888[/url]

不允许 Access-Control-Allow-Origin.

我怎么解决这个问题?
已邀请:

快网

赞同来自:

我前段时间在这个问题上写了一篇文章
http://www.cypressnorth.com/bl ... uery/
.

如果您对响应服务器进行了控制,那么应对它的最简单方法, - 添加响应标题:


Access-Control-Allow-Origin: *


这将创建一个十字域
http://en.wikipedia.org/wiki/A ... %2529
. 在 PHP 您要更改答案如下:


php header/'Access-Control-Allow-Origin: *'/; ?


您可以简单地放置参数
Header set Access-Control-Allow-Origin *


http://en.wikipedia.org/wiki/Apache_HTTP_Server
配置 Apache 或者 htaccess.

应该指出的是,它有效地关闭了保护 CORS, 什么

它可能会攻击您的用户。

. 如果您不知道您特别需要使用通配符的标志,则不应使用它,而是应该在白色列表中制作特定域:


php header/'Access-Control-Allow-Origin: [url=http://example.co]http://example.co[/url]m'/ ?

二哥

赞同来自:

如果你有

不是

控制服务器,可以简单地将此参数添加到您的 Chrome launcher:
--disable-web-security

.

请注意,我不会为正常使用它 "web surfing". 供参考,请参阅此帖子:
https://coderoad.ru/3102819/
.

如果您正在使用 Phonegap 要创建应用程序并将其加载到设备上,它不会是一个问题。

快网

赞同来自:

如果您正在使用 Apache 只需添加:


<ifmodule mod_headers.c="">
Header set Access-Control-Allow-Origin: *
</ifmodule>


在配置中。 这将导致你的所有答案 webserver 将从互联网上的任何其他网站提供。 如果要允许您仅在主机上使用该服务到特定服务器,则可以替换
*

在 URL 源服务器:


Header set Access-Control-Allow-Origin: [url=http://my.origin.host]http://my.origin.host[/url]

詹大官人

赞同来自:

如果您有申请
http://en.wikipedia.org/wiki/ASP.NET
/
http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework
, 您可以通过文件启用此标题。 Web.config:


<system.webserver>
...

<httpprotocol>
<customheaders>
<!-- Enable Cross Domain AJAX calls -->
<remove name="Access-Control-Allow-Origin"></remove>
<add name="Access-Control-Allow-Origin" value="*"></add>
</customheaders>
</httpprotocol>
</system.webserver>

君笑尘

赞同来自:

这是第一个问题/在尝试解决同样的问题时与我出现的答案
http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework
作为我的数据来源。 我明白这不是解决问题
http://en.wikipedia.org/wiki/PHP
, 但他足以是有价值的。

我用 ASP.NET MVC. 消息B.
http://blog.gregbrant.com/post ... .aspx
为我工作。 最终,您创建了一个属性
[HttpHeaderAttribute/"Access-Control-Allow-Origin", "*"/]

, 您可以添加到控制器的操作。

例如:


public class HttpHeaderAttribute : ActionFilterAttribute
{
public string Name { get; set; }
public string Value { get; set; }
public HttpHeaderAttribute/string name, string value/
{
Name = name;
Value = value;
}

public override void OnResultExecuted/ResultExecutedContext filterContext/
{
filterContext.HttpContext.Response.AppendHeader/Name, Value/;
base.OnResultExecuted/filterContext/;
}
}


然后用它:


[HttpHeaderAttribute/"Access-Control-Allow-Origin", "*"/]
public ActionResult MyVeryAvailableAction/string id/
{
return Json/ "Some public result" /;
}

裸奔

赞同来自:

只要 Matt Mombrea 它对服务器部分是正确的,您可能会遇到另一个是白色列表的偏差问题。

你必须定制你的 phonegap.plist. /我使用旧版本 phonegap/

为了 cordova 命名和目录中的一些更改是可能的。 但这些步骤应该是相同的。

首先选择辅助文件 > PhoneGap.plist


然后是 "ExternalHosts"

添加值的条目可以 "
http://nqatalog.negroesquisso.pt
"
我用 * 仅调试。

郭文康

赞同来自:

它可以方便地对待需要排除的人 'www', 因此对于 'non-www' 推荐人的版本:


$referrer = $_SERVER['HTTP_REFERER'];
$parts = parse_url/$referrer/;
$domain = $parts['host'];

if/$domain == 'google.com'/
{
header/'Access-Control-Allow-Origin: [url=http://google.co]http://google.co[/url]m'/;
}
else if/$domain == 'www.google.com'/
{
header/'Access-Control-Allow-Origin: [url=http://www.google.co]http://www.google.co[/url]m'/;
}

石油百科

赞同来自:

我遇到了几次与各种各样的工作 APIs. 通常,快速更正正在添加 "&callback=?- 到绳子的最后一端。 有时,Ampersand必须是符号代码,有时候 "?":"?回调=?"/厘米。
https://coderoad.ru/18132790/
/

江南孤鹜

赞同来自:

这是因为
http://en.wikipedia.org/wiki/Same-origin_policy
. 查看更多信息
https://developer.mozilla.org/ ... cript
或者
http://en.wikipedia.org/wiki/Same_origin_policy
.

基本上,在您的示例中,您需要上传页面
[url=http://nqatalog.negroesquisso.pt/login.php]http://nqatalog.negroesquisso.pt/login.php[/url]

才出局
nqatalog.negroesquisso.pt

, 不是
localhost

.

快网

赞同来自:

如果你写扩展 Chrome 并获得此错误,然后确保 , 您添加了数据库 API URL 在你的
https://developer.chrome.com/e ... .html
manifest.json

, 例如:


"permissions": [
"[url=https://itunes.apple.com/"]https://itunes.apple.com/"[/url]
]

莫问

赞同来自:

我会给你一个简单的解决方案。 在我的情况下,我无法访问服务器。 在这种情况下,您可以更改浏览器中的安全策略。
http://en.wikipedia.org/wiki/Google_Chrome
, 解决 Access-Control-Allow-Origin. 这很简单:

创建浏览器标签 Chrome

右键单击短发图标 - > 特性 - > 标签 - > 目标

简单的意大利面团B.
"C:\Program Files\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files --disable-web-security

.

位置可能有所不同。 现在开放 Chrome, 点击此快捷方式。

喜特乐

赞同来自:

如果你在 apache, 只需添加文件 .htaccess 在您的目录中使用此内容:


Header set Access-Control-Allow-Origin: *

Header set Access-Control-Allow-Headers: content-type

Header set Access-Control-Allow-Methods: *

龙天

赞同来自:

如果你得到它 Angular.js, 这确保您避免了这样的端口号:


var Project = $resource/
'http://localhost\\:5648/api/...', {'a':'b'}, {
update: { method: 'PUT' }
}
/;



https://github.com/angular/angular.js/issues/1243
有关此信息的更多信息。

龙天

赞同来自:


http://en.wikipedia.org/wiki/Ruby_on_Rails
, 您可以在控制器中执行以下操作:


headers['Access-Control-Allow-Origin'] = '*'

龙天

赞同来自:

您可以在不改变服务器的情况下使其工作 broswer 包括头锁
Access-Control-Allow-Origin: *

在参数的响应中 HTTP.

在 Chrome 使用
https://chrome.google.com/webs ... iljbi
. 如果你正在进行中 Mozilla, 退房

.

龙天

赞同来自:

我们对应用程序也有同样的问题。 phonegap, 测试B. chrome.
一个车 windows, 我们在开放前每天在批处理文件下方使用 Chrome.
请记住,在开始之前,您需要清理所有实例 chrome 从任务管理器或您可以选择 chrome, 不在背景中工作。

BATCH: /使用 cmd/


cd D:\Program Files /x86/\Google\Chrome\Application\chrome.exe --disable-web-security

卫东

赞同来自:

在 Ruby
http://sinatrarb.com

response['Access-Control-Allow-Origin'] = '*'


对于所有或者


response['Access-Control-Allow-Origin'] = 'http://yourdomain.name'

郭文康

赞同来自:

当你得到一个要求时


var origin = /req.headers.origin || "*"/;


而不是你必须回答这样的东西:


res.writeHead/
206,
{
'Access-Control-Allow-Credentials': true,
'Access-Control-Allow-Origin': origin,
}
/;

要回复问题请先登录注册