![](/img/trans.png)
[英]Jquery (jfeed) - Origin xxxxx is not allowed by Access-Control-Allow-Origin
[英]Origin is not allowed by Access-Control-Allow-Origin , jquery mobile
我正在本地服务器上开发jQuery移动网页。 我正在使用XAMPP,所以我有一个Apache服务器。
我正在尝试在页面中导入Google日历,但出现错误:
Access-Control-Allow-Origin不允许起源
我发现有超过一百万篇关于它的文章,我听不懂。
他们都在谈论我需要添加标题等的PHP文件。我没有任何PHP文件,它们都是HTML和JavaScript。
我还读到,我可以配置Apache,以便它允许我建立跨域连接。
从这里我引用:
如果您使用的是Apache,只需添加:
<ifModule mod_headers.c> Header set Access-Control-Allow-Origin: * </ifModule>
在您的配置中。 这将使您可以从Internet上的任何其他站点访问来自Web服务器的所有响应。 如果打算只允许特定服务器使用主机上的服务,则可以将*替换为原始服务器的URL。
我到底在哪里添加这段代码? 我试图将其添加到httpd.conf
但未进行任何更改。
有任何想法吗?
您可以强制Google Chrome浏览器不要抱怨跨域起源。在运行chrome时添加此标志--disable-web-security
可以使您成功进行测试。 我已将其添加到桌面上Chrome快捷方式的目标变量中,如下所示:
"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" --disable-web-security
因此,每次我启动Chrome时,它将自动启动并带有此标志,并且我可以测试跨域Ajax调用而不会出现任何问题。
重新阅读您提供的Apache设置的说明:
这将使您可以从Internet上的任何其他站点访问来自Web服务器的所有响应。 如果打算只允许特定服务器使用主机上的服务,则可以将*替换为原始服务器的URL。
换句话说,这种设置使Apache服务器接受服务器上托管的资源的所有传入的跨域请求。
但这不是您想要的。 您想通过跨域请求访问Google服务器上的资源。 如果这些资源允许,您将只能访问它们。 幸运的是,Google日历具有一个API,可让您通过提供的方法访问日历。 您应该在这里查看 。
您应该在PHP服务器上启用CORS,然后尝试在其中使用以下代码:
<?php
header("Access-Control-Allow-Origin: *");
可在此处找到有关如何在服务器上启用CORS的更多信息: http : //enable-cors.org/server_php.html
但是请考虑一下,如果您从无法控制且未启用CORS的服务器上请求信息,则无法从JavaScript进行AJAX调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.