【问题标题】:Same Origin Policy with Different port不同端口的同源策略
【发布时间】:2014-05-26 12:37:05
【问题描述】:

我的 Tomcat 服务器在 localhost 的 8080 端口上运行,并在那里部署了我的 Web 应用程序。

然后我的 Wamp 服务器在同一个 localhost 中运行,端口为 80。php 代码部署在这里。

我想从 Tomcat 中的 html 文件向 Wamp 服务器中的 php 文件发出 AJAX 请求。

但是由于相同的源策略,我无法访问 php 文件。我已阅读以下帖子。但是他们没有给出解决相同主机和不同端口的同源策略问题的解决方案。

请帮助我。

这是我的 PHP 代码。

<?php

header("Access-Control-Allow-Origin: *");

$hint="";
$itemName=$_GET["itemName"];
if($itemName == "ipad")
$hint = "Apple Ipad";
if($itemName == "nexus")
$hint = "Google Nexus";
if($itemName == "motog")
$hint = "Moto g";
if($itemName == "xperiap")
$hint = "Sony Xperia P";

echo $hint==="" ? "No Details" : $hint;

?> 

这是我发出 ajax 请求的 javascript

    function getDetails(itemName){
    request = createRequest();
    if(request == null){
        alert("Connection isuses");
        return false;
    }
    document.domain = document.domain;
    var url = "http://"+document.domain+"/Ajax/getDetails.php?itemName="+itemName;
        request.onreadystatechange = displayDetails;
    request.open("GET", url,true);
    request.send();
}

我有 createRequest 和 displayDetails 的函数。

【问题讨论】:

  • 使用浏览器的开发者工具。 JavaScript 控制台说什么?网络标签说什么?你能看到正在发出的 Ajax 请求吗?它会转到您期望的 URL 吗?你能看到响应中的访问控制标头吗?

标签: php ajax same-origin-policy


【解决方案1】:

我猜你的浏览器正在阻止与安全相同的来源。

您是否尝试禁用安全性?我们可以按如下方式在 Google Chrome 中禁用此安全性:

chrome.exe --disable-web-security

【讨论】:

猜你喜欢
  • 2012-05-09
  • 2021-03-11
  • 2011-01-17
  • 2012-10-30
  • 2011-12-26
  • 2013-11-09
  • 2013-01-08
  • 2011-12-26
  • 2014-02-03
相关资源
最近更新 更多