【问题标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://mydomainname.net' is therefore not allowed access请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问来源“http://mydomainname.net”
【发布时间】:2018-09-01 03:37:16
【问题描述】:

所以我已经阅读了所有其他帖子,例如

Similar Problem 1

Similar Problem 2

但这两种解决方案都不适合我。

所以我有以下 JavaScript 代码

var xhttp = new XMLHttpRequest();
xhttp.open("GET", "react.php?do=getnotify&rand=" + Math.random(), true);
xhttp.setRequestHeader("Access-Control-Allow-Origin", "http://mydomainname.net");
xhttp.send();

我仍然收到错误消息

(index):1 加载失败 http://mydomainname.net/react.php?do=getnotify&rand=0.10280796901744726: 请求中不存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://mydomainname.net” 访问。

  • 仅当用户通过 mydomainname.net

  • 访问该网站时才会发生这种情况
  • 如果用户通过 www.mydomainname.net 访问该站点,则 Ajax 请求工作正常 - 没有问题。

那么是什么给了???

【问题讨论】:

  • Access-Control-Allow-Origin 是响应标头,而不是请求标头。你不能从你的前端 JavaScript 代码中设置它。相反,您发出请求的服务器需要发送 Access-Control-Allow-Origin。但是问题中显示的代码不会导致问题中显示的错误消息 - 因为这不是跨域请求。
  • 问题中显示的错误信息中的 URL 没有意义;浏览器永远不会报告 Failed to load http://mydomainname.net/react.php?… … Origin 'http://mydomainname.net' 的消息 - 因为http://mydomainname.net/react.php?…http://mydomainname.net 具有相同的来源,所以这不会是交叉-origin 请求,因此您不会收到该错误消息。
  • @sideshowbarker 我不知道...它是我的主机...所以如果您有任何建议,我可以将任何我想要的内容添加到 .htaccess。该脚本位于该站点的主页上,因此....就像我说的,如果您通过键入 www.mydomainname.net 访问该站点的主页,那么该脚本可以正常工作...如果您通过键入 mydomainname.net 访问主页,那么脚本将失败,因为我猜服务器认为 http://mydomainname.net/blahblah 是一个外部请求,而它认为 @ 987654331@ 内部请求....基本上我猜有什么建议?
  • 另外:由于 javascript 会自动将地址栏中的域添加到 Ajax /react.php .... 引用,因此几乎不可能确保 www在 Ajax 地址中。所以我想问题是......如何让浏览器/服务器接受对 http://mydomainname.net/blahblah 的调用,而不仅仅是 http://www.mydomainname.net/blahblah
  • @sideshowbarker 有什么建议吗?

标签: ajax header request cors


【解决方案1】:

我最终做的是(可能是创可贴......但它有效)将其放入 .htaccess 文件中

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

以便强制 www 包含在 url 的开头。

【讨论】:

    猜你喜欢
    • 2018-07-19
    • 2017-04-25
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多