猿问

JS 发送 http请求问题

我想做的事情是在本地搭建的tomcat环境下,在一个http.html里发送一个post请求,post参数为'Hello lf',然后在111.html里写一个get请求,接收这个参数,为啥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,求教各位,是我哪理解错了吗


凤凰求蛊
浏览 637回答 3
3回答

慕容森

你这是请求页面的所有数据 在111.html并不是执行alert(hello If)你这种类似 请求本地的一个json然后把数据拿过来!

三国纷争

你请求的就是http.html整个页面啊

明月笑刀无情

你应该先去看看 http 协议:典型的 HTTP 会话一次 http 会话先由客户端(浏览器)发起请求,然后服务器收到请求之后,根据请求内容返回客户端想要的数据,叫响应。一个请求由请求头、请求正文等组成,url,get/post这些属于请求头的部分,请求正文就是你re.send方法发送的数据。服务器收到请求后返回的响应同样有响应头、响应正文,例如你re.status的值其实就是响应头里的 HTTP 状态码,re.responseText就是响应正文。为什么你会收到整个http.html页面,这是因为服务器返回的响应正文就是整个http.html页面,跟你 send 过去的东西没有任何关系。如果你想收到的 send 过去的东西,你需要在服务器的代码里进行处理,让服务器返回你想要的响应内容。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答