鍍金池/ 問答/HTML/ JS 發(fā)送 http請求問題

JS 發(fā)送 http請求問題

我想做的事情是在本地搭建的tomcat環(huán)境下,在一個http.html里發(fā)送一個post請求,post參數(shù)為'Hello lf',然后在111.html里寫一個get請求,接收這個參數(shù),為啥alert出來的是http.html的所有源碼呢?

代碼如下:

function test(msg){
                var re = new XMLHttpRequest();
                re.open('POST','111.html');
                re.setRequestHeader('Content-Type','text/plain;charset=UTF-8');
                re.send(msg);
            }
            test('hello lf'); 

上面是在http.html的js代碼里,下面代碼是在111.html里

function test(url){
            var re = new XMLHttpRequest();
            re.open('GET',url);
            re.onreadystatechange = function(){
                if(re.readyState === 4 && re.status === 200){            
                    alert(re.responseText);
                }
            };
            re.send(null);
        }
        test('http.html');
alert出來的是整個http.html里的代碼,我想alert 的是hello lf,求教各位,是我哪理解錯了嗎

回答
編輯回答
冷溫柔

你應(yīng)該先去看看 http 協(xié)議:典型的 HTTP 會話
一次 http 會話先由客戶端(瀏覽器)發(fā)起請求,然后服務(wù)器收到請求之后,根據(jù)請求內(nèi)容返回客戶端想要的數(shù)據(jù),叫響應(yīng)
一個請求由請求頭、請求正文等組成,url,get/post這些屬于請求頭的部分,請求正文就是你re.send方法發(fā)送的數(shù)據(jù)。
服務(wù)器收到請求后返回的響應(yīng)同樣有響應(yīng)頭、響應(yīng)正文,例如你re.status的值其實(shí)就是響應(yīng)頭里的 HTTP 狀態(tài)碼,re.responseText就是響應(yīng)正文。
為什么你會收到整個http.html頁面,這是因?yàn)榉?wù)器返回的響應(yīng)正文就是整個http.html頁面,跟你 send 過去的東西沒有任何關(guān)系。
如果你想收到的 send 過去的東西,你需要在服務(wù)器的代碼里進(jìn)行處理,讓服務(wù)器返回你想要的響應(yīng)內(nèi)容。

2017年8月18日 01:57
編輯回答
生性

你請求的就是http.html整個頁面啊

2017年1月23日 01:24
編輯回答
陌離殤

你這是請求頁面的所有數(shù)據(jù) 在111.html并不是執(zhí)行alert(hello If)

 你這種類似 請求本地的一個json然后把數(shù)據(jù)拿過來!
2017年11月13日 10:20