IE或Edge {AJ} POST的AJAX POST中没有数据但只有标题

时间:2016-08-26 01:31:13

标签: javascript jquery c ajax internet-explorer

所以在我的场景中,我使用AJAX将数据发送到服务器。这是我的AJAX代码:

$.post('change_password',"username"+username+"password"+$('#Confirm_password').val()+";",function(data,status){
  alert("Data: " + data + "\nStatus: " + status);
  if(status=="success"){
       if(data=="set_success"){ 
            alert("Password Change Success");
       }                        
  }
});

我读了很多文章,他们说IE用2个tcp包发送帖子(1个标题和1个数据内容)。所以在我的服务器端如果我只接收1个,我只能得到标题,但不能获得我真正需要的数据内容。我尝试了一些解决方案,例如添加元标记

<meta charset="utf-8">

<meta http-equiv="x-ua-compatible" content="IE=9" >

但是对我来说没有任何办法让IE只用1个数据包而不是2个发送帖子。

但奇怪的是。在其他论坛中,人们说这是IE10或11的错误。但是我试图将我的IE缩减到IE9仍然无法正常工作。

有人有这个想法吗?被困在这个问题上将近5天。

而且,我有这样的服务器工具:

if((err = netconn_recv(conn, &inbuf)) == ERR_OK) {

      netbuf_first(inbuf);

      do{

          netbuf_data(inbuf, (void**)&buf, &buflen);
          strcat(recieve_buffer, buf);
          }while(netbuf_next(inbuf) >= 0);
}

所以这是一个轻量级tcp / ip的LWIP库。它通过netconn_recv接收传入的请求。但是如果我使用IE浏览器,它只会得到帖子的标题。我尝试再次收到传入的请求。它有时会收到&#34;只是数据内容(没有标题)。&#34;但有时它会得到错误的数据包(像其他请求一样)。我只是想知道是否有办法接收2个tcp包中的帖子?

/* for browser like IE. Recieve the netbuf again to get content */
              /*
if(strcmp(http_body,"") == 0){

    if((err = netconn_recv(conn, &inbuf)) == ERR_OK) {
        netbuf_first(inbuf);
        do{
            netbuf_data(inbuf, (void**)&http_body, &buflen);
        }while(netbuf_next(inbuf) >= 0);
    }
    netconn_write(conn,&http_body[0], strlen(http_body), NETCONN_COPY);

}
else{
    netconn_write(conn,&http_body[0], strlen(http_body), NETCONN_COPY);
}
   */

0 个答案:

没有答案