2011-04-03 159 views
2

问候人人AJAX请求太长/错误请求

我正在使用以下代码发送数据以更新到php文件。问题是我得到一个请求太长的问题。我相信如果这是正确的方法,我使用'POST'方法。是的,我发送的数据非常安静。那么我能做什么?

var link = 'updateFirstPost.php?post_id='+id+'&first_post='+encodeURIComponent(text); 


    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     var xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
       refreshPost(div_post, thread_id , id); 
    } 
} 

    xmlhttp.open("POST",link,true); 
    xmlhttp.send(); 

问题是我得到一个请求太长的问题。我相信如果这是正确的方法,我使用'POST'方法。那么我能做什么?

+0

您正在将数据作为GET参数放入URL中,这会始终导致它们在URL内发送。你需要将它们添加为POST数据 – 2011-04-03 12:06:22

+0

我想你的服务器响应太慢了...... – 2011-04-03 12:06:49

+0

@Pekka:最新的解决方法是什么?我不习惯JQUERY – 2011-04-03 12:07:57

回答

4

您正在将数据放入URL中,这将始终使它们作为GET数据发送。 GET请求在服务器和浏览器端都有自然长度限制。

要通过POST发送数据,你需要把这些参数,像这样:

var params = 'first_post='+encodeURIComponent(text); 

.... 

http.send(params); 

(从here被盗)

如果这不是学习的目的,可以考虑使用一个JS框架状jQuery的。它使得这些东西变得非常简单,代码密集程度更低。