【问题标题】:Access-Control-Allow-Origin allowing all pages accessAccess-Control-Allow-Origin 允许所有页面访问
【发布时间】:2018-02-28 13:04:15
【问题描述】:

我只想允许来自我的网站的请求访问以下 php 页面。 但是,所有页面都可以在 XAMPP 上使用。

这是我的代码:

我正在使用 .js 文件来调用 php 文件:

// page1.js

var json_url = "page2.php";

$.getJSON(json_url, function(response) {
    alert("Entered");
 });

在 page2.php 上:

<?php

header("Access-Control-Allow-Origin: https://www.mywebsite.com");
header("Access-Control-Allow-Credentials: true");
header("Content-Type: application/json");

// ...

?>

【问题讨论】:

标签: php cors


【解决方案1】:

正确的使用方法是:

Access-Control-Allow-Origin: www.mywebsite.com

是的,您必须指定域(允许使用通配符),而不是 URL。

现在,“允许来自我的网站的请求访问以下 php 页面”是什么意思?如果您不是 www.remoteserver.com 的所有者,您将无法从您的网站 (mywebsite.com) 到 www.remoteserver.com 执行 ajax 调用,除非他们的 HTTP 响应中存在 Access-Control-Allow-Origin: www.yourwebsite.com 标头(我怀疑您是否不是所有者)。

【讨论】:

  • 为了清楚起见已更新问题。我希望 page2.php 仅响应来自 www.mywebsite.com (这是我的域)内的请求。但是,即使请求来自我的域之外,它当前也会执行。
  • 您甚至不需要为此发送 Access-Control-Allow-Origin 标头。如果它不存在于您的 HTTP 响应中,那么除了您自己的域之外,没有其他域能够对 page2.php 进行 ajax 调用。
  • 但是现在任何人都可以搜索“mywebsite.com/page2.php”并访问它。我该如何限制它,以便只有我自己的域页面可以访问它?
  • 我想你不是在谈论 ajax 调用,所以这次Access-Control-Allow-Origin 对你不起作用。
猜你喜欢
  • 2015-06-17
  • 2013-09-09
  • 1970-01-01
  • 2012-03-08
  • 2012-06-07
  • 2011-11-05
相关资源
最近更新 更多