gpt4 book ai didi

javascript - 围绕同源政策工作?

转载 作者:行者123 更新时间:2023-12-02 16:06:47 25 4
gpt4 key购买 nike

我的本​​地安装的 XAMPP 上确实有一个名为 TEST.PHP 的文件。当我转到http://127.0.0.1/TEST.PHP 并执行它,脚本应将值 ID 和 NAME 发布到站点 http://otherdomain.com/post.php 并将输出放入DATA中。由于同源策略,这不起作用。当我跟踪包时,我收到一个错误,调用“NS_ERROR_DOM_BAD_URI”。我现在的问题是,是否有办法使其成为可能,而无需访问 http://otherdomain.com/

测试.PHP

   <script>
$(window).load(function(){
var url = "http://otherdomain.com/post.php";

$.post(url,{id : "12", name : "John"}, function(data)
{
alert("It worked!");
});
});
</script>

UPDATE

我现在将其更改为以下设置。我有两个文件,名为 SEND.PHP 和 PROXY.PHP。我从 SEND.PHP 向 PROXY.PHP 发送请求,PROXY.PHP 将实际请求发送到 OTHERDOMAIN.COM。当我现在执行 SEND.PHP 时(意味着我按下按钮),我总是得到结果“错误:403 禁止访问”。

发送.PHP

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.post("proxy.php", function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
});
</script>
</head>
<body>

<button>Send Data</button>

</body>
</html>

PROXY.PHP

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://otherdomain.com/data");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"name=Jack&age=23");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec ($ch);

curl_close ($ch);

if ($server_output == "OK") { echo "It Worked!"; } else { echo "Error: " . $server_output; }

?>

最佳答案

您必须使用代理文件以避免同源策略限制。在 proxy.php 中,您可以通过 CURL 或其他 HTTP 库向 otherdomain.com 发出请求。通过 JavaScript 调用代理文件,而不是直接调用 otherdomain.com。

关于javascript - 围绕同源政策工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30648380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com