通过jquery ajax发送长数据

时间:2012-11-15 16:32:28

标签: php jquery

以下代码获取html,编码并将其发送到任何php文件。 php文件只包含“hello”字符串。但是当函数运行时它可以获得所有的html,但是不能发送字符串长的原因。因为你无法看到HELLO警报。 Ajax允许定义最长?我是对的吗?

function getlongdata(){
    htmldatas=encodeURIComponent($('#divlongcontent').html());
    alert(htmldatas);
    $.ajax({
         type: "GET",
         url: "sayhello.php",
         data: "longdatago="+htmldatas,
         success: function(msg){
            alert(msg);
         }
     });
}


<div id="divlongcontent">blablabla1000000000timesblaaaaaaa</div>

3 个答案:

答案 0 :(得分:4)

浏览器强加a limit on URL length

如果您要提交大量数据,请使用POST请求并将其放在邮件正文中而不是查询字符串中。

答案 1 :(得分:0)

根据Wikipedia

,使用POST代替GET
  

有时甚至HTTP GET也不太适合数据检索。这方面的一个例子是需要在URL中指定大量数据。浏览器和Web服务器可以限制它们将处理的URL的长度而不会截断或错误。 URL和查询字符串中保留字符的百分比编码可以显着增加其长度,而Apache HTTP Server可以处理URL中最多4,000个字符,Microsoft Internet Explorer在任何URL中限制为2048个字符。同样,如果必须提交敏感信息(如用户名和密码)以及其他数据以完成请求,则不应使用HTTP GET。在这些情况下,即使使用HTTPS加密邮件正文,URL中的数据也将以明文形式传递,许多服务器,代理和浏览器将以第三方可见的方式记录完整的URL。在这些情况下,应该使用HTTP POST。

答案 2 :(得分:0)

只要您的数据少于2000个字符,就可以安全地使用get。但是,如果在某些时候你觉得它超过了这个限制,它将无法在所有浏览器中保持一致。

ajax来电中,将typeget更改为post,一切正常。

使用post

可以发送多少数据没有限制