簡體   English   中英

javascript,php,ajax-AJAX響應始終為空

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM