2015-10-31 192 views
0

我一直在絞盡腦汁,現在幾個小時,做了大量的搜索,我似乎無法找到答案。我想知道是否可以將xmlhttp.responseText值從AJAX函數返回到最初稱爲AJAX函數的函數。返回從AJAX函數返回xmlhttp.responseText

xmlhttp.onreadystatechange = function() { 
       if (xmlhttp.readyState == 4) { 
        if (xmlhttp.status == 200) { 
         //document.getElementById("err").style.color="red"; 
         my_response = xmlhttp.responseText; 
         alert(my_response); 
         return my_response; 

        } 
       } 
      } 

我想將my_response變量返回給原始調用者。無論我嘗試什麼,我都不成功。我甚至嘗試使用window.my_response = xmlhttp.responseText將其分配給全局窗口變量,但最終未定義。

我看過的每個使用AJAX的示例都會在if(xmlhttp.status == 200)部分內部進行更新,以便更新網頁。我真的不想那樣做。

我可以返回值嗎?謝謝你的幫助。

順便說一句,ajax函數工作正常,因爲警報正常工作。

xmlhttp.onreadystatechange = function() { 
          if (xmlhttp.readyState == 4) { 
           //document.getElementById("err").style.color="red"; 
           console.log(row); 
           row.child(format(row.data())).show(); 
           tr.addClass('shown'); 
          } 
         } 

格式函數的代碼就在這個之上。

+0

因爲ajax請求的異步性質,你不能這麼做...... –

+0

相反,你應該使用回調函數來處理響應 –

+0

@ArunPJohny,那麼我該如何返回它呢? – dddddd

回答

-1

我用這個AJAX交流與聯繫一個小的jQuery:

function swapContent(href, url_data, target) { 
    $.ajax({ 
     type: 'GET', 
     cache: false, 
     url: href+'?' + url_data, //add a variable to the URL that will carry the value in your i counter through to the PHP page so it know's if this is new or additional data 
     success: function (data) { // this param name was confusing, I have changed it to the "normal" name to make it clear that it contains the data returned from the request 
      //load more data to "target" value div 
      target.innerHTML = (data); // as above, data holds the result of the request, so all the data returned from your results.php file are in this param but please see below 
     } 
    }) 
} 

您可以更改的innerHTML到別的東西,它應該工作,除非你得到一個「存在地獄」的錯誤。

它還支持其他功能,當你包裝它的東西,因爲它是頁面的互換器。