2010-08-14 91 views
0

這一直困擾着我多年,我嘗試了一切,但我無法使它工作。從XMLHttpRequest獲取數據

這裏是我的功能目前

function example1() { 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("GET", url,true); 
    xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4) { 
     data=(xmlhttp.responseText); 
     } 
    } 
    xmlhttp.send(null); 
} 

我希望能夠得到「數據」指出,函數,然後我就可以在另一個函數返回一些正則表達式的,我希望能夠使「網址」依賴於用戶輸入

我希望有人能幫助我,這讓我非常瘋狂。

感謝您的時間

回答

-1

的XmlHttpRequest不跨域工作,所以如果用戶,比方說,提交http://google.com,它不會工作。但是,如果你想從您自己的網站獲取數據,並讓他們輸入從您自己的網站的URL,然後URL的HTML將包含在

xmlhttp.responseHtml; 
+0

對不起,這不是我的問題。 「我希望能夠從那個函數中獲得」數據「,然後我可以在另一個函數中返回一些regrex,並且我希望能夠使」url「依賴於用戶輸入」 – jigh 2010-08-14 23:58:32

+0

哦,對不起。要獲得用戶輸入,可以說你有一個var url,然後將其更改爲: var data = example1(url); 因此,而不是說 data =(xmlhttp.responseText); 說 return xmlhttp.responseText; – codersarepeople 2010-08-15 02:32:26

+0

我仍然有麻煩。我發現了另一個原因,爲什麼我不能繼續,所以我放棄了整個想法(現在) 謝謝你 – jigh 2010-08-15 04:05:08

0

簡短的回答:您需要更改第三個參數從

xmlhttp.open("GET", url, true) 

異步標誌

xmlhttp.open("GET", url, false) 

一個常見的錯誤是認爲這是因爲如果你設置的deb範圍界定問題在xmlhttp.onload = function(){...}中使用消息,它在回調中工作,而在回調之外沒有任何事情發生。

事實證明,因爲如果異步設置爲(默認值),在回調之前在onload回調運行之外的調試消息得到執行這其實是一個時間問題。