2012-04-30 76 views
-1

我已阅读论坛和谷歌,但我只是不明白如何将我的ajax GET查询更改为POST。如果有人能够帮助我实现它,那将是非常棒的。谢谢!如何更改ajax获得发布

继承人我的代码:

function ajax(query,parameters,progress_div,progress_txt,result_div) { 
      // Sisend: 
      //  0 or 1 | (main_error) error string OR (resdiv) result string 

      var xmlhttp; 

      if (progress_div) { progdiv = document.getElementById(progress_div); } 
      if (result_div) { resdiv = document.getElementById(result_div); } 

      if (progdiv) { progdiv.innerHTML = progress_txt; } 

      // ajax 
      if (window.XMLHttpRequest) { 
        xmlhttp=new XMLHttpRequest(); 
      } 
      else { 
        xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 
      } 
      xmlhttp.onreadystatechange=function() { 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
        var response = xmlhttp.responseText; 
        var string = response.split("<?php echo $vs; ?>"); 

        //kui päring oli ok 
        if (string[0] == '1' || string[0] == '0') { 
         if (progdiv) { progdiv.innerHTML = ''; } 
         if (resdiv) { resdiv.innerHTML = string[2]; } 
        } 
        else { 
         errdiv = document.getElementById('main_error'); 
         if (string[0] == '0') { errdiv.innerHTML = string[2]; } 
         else { errdiv.innerHTML = string[0]+string[1]; } 
         progdiv.innerHTML = ''; 
         errdiv.style.display = 'block'; 
        } 
        if (string[0] == '1' && string[1] != '0') { 
         window.location.href = string[1]; 
        } 
       } 
      } 
      xmlhttp.open('GET','?leht=ajax&query='+query+'&parameters='+parameters,true); 
      xmlhttp.send(); 
      return false; 
     } 
+1

是否'xmlhttp.open( 'GET',...)'看起来像它有什么关系呢? – Jon

+0

我不打算,但仍然http://meta.stackexchange.com/questions/45176/when-is-use-jquery-not-a-valid-answer-to-a-javascript-question – Nanne

+0

@Nanne这不会有帮助,因为他/她可能会/使用jquery犯同样的错误;) – pduersteler

回答

-1

改变以下线

xmlhttp.open('GET','?leht=ajax&query='+query+'&parameters='+parameters,true); 

这样

var url = 'http://yoursite.com/yourfile.php?leht=ajax&query='+query+'&parameters='+parameters; 
xmlhttp.open("GET", url, true); //GET method 
xmlhttp.open("POST", url, true); //POST method 

你已经错过了你的行中的文件名。

jQuery的POST

$.ajax({ url: "yourfilename.php", 

data: {leht: 'ajax',"query":query,"parameters":parameters}, 

type: 'post', 

success: function(output) { 
    //process the output 

} 

}); 
+0

这仍然会发出GET请求,而不是POST请求。 – Quentin

+0

谢谢你的回复。如果我理解正确,它会改变方法,但它仍然依靠Web地址来获取参数。由于获取地址长度的限制,我需要POST。我需要通过查询发送长文本的POST。 – user1365447

+0

我已经使用jquery post编辑了我的答案。请考虑一下。 – nithi