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,求教各位,是我哪理解错了吗

阅读 7.6k
3 个回答

你这是请求页面的所有数据 在111.html并不是执行alert(hello If)

 你这种类似 请求本地的一个json然后把数据拿过来!

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题