[英]Cross-domain request with jQuery and JSON not working in Internet Explorer (security issue?)
我想使用 Ajax 發出請求,但當我意識到域名不同時,我決定改用 JSON。
代碼:
$(".name").click(function(){
//Get information
var id = $(this).attr("id").substring(1);
jQuery.getJSON("https:/otherdomain.com/makereq.php?id="+id+"&callback=?",
function(data) {
alert("id: " + data.id);
return false;
});
});
$jsonData = array('id'=>$_GET['id']);
echo $_GET['callback'] . '(' . json_encode($jsonData) . ');';
這在 Firefox 中工作正常。我得到數據並且警報顯示發送和接收的 ID。 但在 Inte.net Explorer 中,出現安全錯誤,提示內容已被阻止,無法接收數據。 在 Chrome 中,它也不起作用。
為什么會這樣或者我做錯了什么? 是否有任何解決方案可以在沒有來自其他域的瀏覽器錯誤/警報的情況下發送和接收數據?
我認為這不能以這種方式完成。 嘗試在您的域中使用橋接文件 PHP 來讀取其他主機內容cURL 。 那肯定有效。
查看getJSON
上的jQuery 頁面。 關於JSONP的部分是您在嘗試將數據與跨域請求的回調一起使用時所追求的。
getJSON()
在這里不起作用。 你想要做的是使用回調的名稱編寫一個 function 並將你的 php 文件返回的數據實際加載為 javascript 文件。
<script src="https:/otherdomain.com/makereq.php?id=1&callback=callBack"></script>
<script>
callBack(data) {
[do stuff...]
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.