HTML表单提交给400错误的请求(HTML form submit giving 400 bad

2019-09-17 14:25发布

我提交使用POST method.A正常提交HTML表单REST(eXist中DB)的Web服务是给予400错误的请求

这里是我的HTML代码

<html>
    <script type="text/javascript">
     /* function createXMLHttpRequest()
       {
        if( typeof XMLHttpRequest == "undefined" )
        XMLHttpRequest = function() 
         {
          try 
          { 
           return new ActiveXObject("Msxml2.XMLHTTP.6.0")
          } 
         catch(e) {}
          try 
          { 
           return new ActiveXObject("Msxml2.XMLHTTP.3.0")
          } 
         catch(e) {}
          try
          { 
          return new ActiveXObject("Msxml2.XMLHTTP") 
          } 
         catch(e) {}
          try 
          { 
          return new ActiveXObject("Microsoft.XMLHTTP") 
          } 
         catch(e) {}
         throw new Error( "This browser does not support XMLHttpRequest." )
      };
       return new XMLHttpRequest();
     }

var AJAX = createXMLHttpRequest();*/
function submitForm()
 {

    //AJAX.open("POST",'http://localhost:8899/exist/rest/db/xql/sample.xq');
   // AJAX.send(document.form.xmlData.value);
   document.form.submit();
 };
</script>
<head>  
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
 <form name='form' action="http://localhost:8899/exist/rest/db/xql/sample.xq"  enctype="text/plain" method="post">
   <input type="text" name="xmlData"/>
   <input type="button" value="Submit" onclick="submitForm()";>
 </form>
</body>
</html>

注释代码是使用AJAX来发送POST请求。 我所捕获的HTTP标头请求和响应形式提交和AJAX提交这些是请求头:

HTML表单提交标题:

(Request-Line)  POST /exist/rest/db/xql/sample.xq HTTP/1.1
Host    localhost:8899
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Connection  keep-alive
Content-Type    text/plain
Content-Length  26

AJAX请求头:

(Request-Line)  POST /exist/rest/db/xql/sample.xq HTTP/1.1
Host    localhost:8899
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Connection  keep-alive
Content-Length  16
Content-Type    text/plain; charset=UTF-8
Origin  null
Pragma  no-cache
Cache-Control   no-cache

我不是得到什么是错在我的代码。 进出口工作在这2天,但我din't找到任何解决方案。 请一下,并提供解决方案。

提前致谢。

Answer 1:

我敢肯定那是因为你只发送数据中的价值。

您需要发送一个名称=值对。



Answer 2:

您的代码sumbits数据到服务器,因为它应该是。 必须有一些问题,你的服务器端代码。

从checkupdown.com报价约400错误

400错误HTTP循环中的

1.Any客户端(例如Web浏览器或我们的CheckUpDown机器人)经过以下循环:

从网站的IP名称2.Obtain的IP地址(不带龙头网站URL的“http://”)。 此查找(IP名到IP地址的转换)由域名服务器(DNSs)提供。

3.打开一个IP套接字连接到该IP地址。

4.Write一个HTTP通过该套接字的数据流。

5.Receive的HTTP数据流从Web服务器返回响应。 该数据流包含其值由HTTP协议确定的状态码。 解析状态编码和其他有用的信息,这个数据流。

在当客户端收到识别其为“400”的HTTP状态代码上述最后一步中发生该错误。



Answer 3:

请问您的目标接受POST请求,或者只得到什么?



Answer 4:

但你不发送与阿贾克斯POST任何参数?

Ajax代码应该是这个样子:

var xmlData=encodeURIComponent(document.getElementById("xmlData").value);
var parameters="xmlData="+xmlData;
AJAX.open("POST", "'http://localhost:8899/exist/rest/db/xql/sample.xq", true)
AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
AJAX.send(parameters)


文章来源: HTML form submit giving 400 bad request