我的本地安裝的XAMPP上有一個文件,名爲TEST.PHP。當我去http://127.0.0.1/TEST.PHP並執行它,腳本應該張貼值ID和NAME到現場http://otherdomain.com/post.php和輸出放到DATA。這不起作用,因爲同源策略。當我跟蹤包時,我收到一個錯誤calles 「NS_ERROR_DOM_BAD_URI」。我現在的問題是,無論如何,無論如何可以不必訪問http://otherdomain.com/?解決同源策略問題?
test.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(意味着我按下按鈕)時,我總是得到結果「Error:403 Forbidden Access」。
SEND.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; }
?>
具有相同原產地政策的重點是防止人們做這樣的事情。 –
看看這個:http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy?rq=1 –
你需要做的'otherdomain'的東西在PHP中,而不是JavaScript的。 – Lance