[英]javascript, php, ajax - AJAX response is always empty
祝大家有美好的一天。 我有流動的問題。
我有2個域。 在一個域上,我向另一個域發送ajax帖子,並期待一些結果。 問題在於響應始終為空。 如果我檢查了net選項卡,請求看起來就沒問題(發布數據很好),它沒有收到任何錯誤,它結束了(我在handle響應函數上發出了警報,以檢查響應是什么)。 我嘗試將請求發送到隨機域(例如example.com),以查看是否收到任何內容。 響應是相同的……沒有。
這是我使用的腳本:
function sendReqPost(url) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
//http_request.onreadystatechange = handleResponseAccept;
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
//parameters is a global variable with the post data.
http_request.send(parameters);
}
我仔細檢查了腳本中的所有內容...我還在請求的php頁面中插入了回聲,以查看是否得到了任何東西。 無論我做什么,反應都是空的。 PS在另一個域上,ajax腳本運行良好。 一模一樣。
我有2個域。 在一個域上,我向另一個域發送ajax帖子,並期待一些結果。
有你的問題。 這是由於JavaScript中的同源策略 。 那就是為什么...
...在另一個域上,ajax腳本運行良好。
但是,有一些變通方法稱為Cross Domain Ajax 。
為了滿足您的需求,由於您顯然需要HTML而不是JSON,我建議使用一個小的PHP腳本從其他域獲取內容並將其轉發給客戶端。 這將稱為Ajax代理 。
看到這個問題
我看不到您的http_request.responseText
,它返回了請求URL中echo
的內容。
因此,請嘗試添加以下內容:
http_request.onreadystatechange = function () {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
alert(http_request.responseText);
} else {
alert("An error occurred: "+ http_request.statusText);
}
}
};
之前:
//parameters is a global variable with the post data.
看看是否可行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.