我想做的事情是在本地搭建的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,求教各位,是我哪理解错了吗
3 回答

明月笑刀无情
TA贡献1828条经验 获得超4个赞
你应该先去看看 http 协议:典型的 HTTP 会话
一次 http 会话先由客户端(浏览器)发起请求,然后服务器收到请求之后,根据请求内容返回客户端想要的数据,叫响应。
一个请求由请求头、请求正文等组成,url
,get/post
这些属于请求头的部分,请求正文就是你re.send
方法发送的数据。
服务器收到请求后返回的响应同样有响应头、响应正文,例如你re.status
的值其实就是响应头里的 HTTP 状态码,re.responseText
就是响应正文。
为什么你会收到整个http.html
页面,这是因为服务器返回的响应正文就是整个http.html
页面,跟你 send 过去的东西没有任何关系。
如果你想收到的 send 过去的东西,你需要在服务器的代码里进行处理,让服务器返回你想要的响应内容。
添加回答
举报
0/150
提交
取消