在javascript中发送带有“FormData()”的表单,不会正确显示html响应。为什么?

时间:2018-04-12 19:59:14

标签: javascript html xmlhttprequest

我正在使用两种不同的方法发送表单。

但浏览器不显示方法2中从服务器返回的html内容。

表格:

<form name="form1" method="POST" action="http://localhost:8080/return_form/sayform" ><input name="refid"  value="33862136">

方法1 :(表格,提交)

<button type="button" onclick="document.form1.submit()">POST Data</button>

结果1:

浏览器将表单发送到服务器和服务器响应HTML内容和浏览器根据服务器响应显示HTML内容。

方法2 :( JavaScript函数,使用“FormData”和“XMLHttpRequest”)

`

function Send() {
   var data = new FormData();
   data.append("refid", "33862136");
   var xhr = new XMLHttpRequest();
   xhr.open("POST", "http://localhost:8080/return_form/sayform", false);
   xhr.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
         //do some thing
      }
   };
   xhr.send(data);
};`


<button type="button" onclick="Send()">POST Data</button>

结果2:

brwoser使用标题

发布表单
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryOdbZ7kv4ZlCRmEkk

并请求

的有效负载
------WebKitFormBoundaryOdbZ7kv4ZlCRmEkk    
Content-Disposition: form-data; name="refid"
33862136
------WebKitFormBoundaryOdbZ7kv4ZlCRmEkk--

和服务器响应HTML内容(与方法1服务器响应完全相同)但浏览器不显示HTML内容。

1 个答案:

答案 0 :(得分:0)

Ajax的全部意义在于,响应由您编写的JavaScript处理,而不是自动将其显示为新页面。

如果您想对结果做些什么,那么您需要编写代码来执行此操作:在您编写//do some thing的位置。

如果你想将它显示为新页面:不要使用Ajax。