【问题标题】:Is there any data limit size for ajax xmlhttprequest post method my xhr get cut off?我的 xhr 被切断的 ajax xmlhttprequest post 方法是否有任何数据限制大小?
【发布时间】:2013-01-18 14:14:19
【问题描述】:

我正在尝试使用 ajax xmlhttprequest post 方法将一些 html 数据发送到 php 脚本。但由于某种原因,我的 XHR POST REQUEST 被切断,并非所有数据都传输到我的 doit.php 脚本。然而,来自 textarea 表单的相同 html 数据通过普通表单发布方法正确传递给 doit.php 脚本!你们能帮我解决这个问题并能够通过 xhr 请求传递这个 html 数据吗?

    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("POST","http://www.mysite.com/doit.php?Name=test&Id=12345",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("outputtext="+siteContents);

【问题讨论】:

    标签: javascript html ajax xmlhttprequest


    【解决方案1】:

    我认为你也应该encodeURIComponent()你的 siteContents 字符串:

    xmlhttp.send("outputtext=" + encodeURIComponent(siteContents));
    

    这是因为 POST 变量由 & 符号 (&) 分隔。问题可能是您的字符串还包含一个&符号,它将被解释为新 POST 变量的开头。

    如果您在 PHP 脚本中输出所有收到的 POST 变量,您可以轻松地检查这一点:

    var_dump($_POST);
    

    【讨论】:

    • comfreak 非常感谢,非常感谢。我花了几个小时尝试不同的东西!现在我的数据发送正确,没有任何中断!
    【解决方案2】:

    这看起来像是一个 GET 请求,因为 URL 中有问号和名称/值对:

    http://www.mysite.com/doit.php?Name=test&Id=12345
    

    以下是使用 AJAX 发出 POST 请求的方法:

    http://www.javascriptkit.com/dhtmltutors/ajaxgetpost2.shtml

    【讨论】:

    • +sitecontents 保存我要发布的数据!
    • 感谢您的回复。我的发布请求有效,但仅将我的部分 html 数据而不是完整数据发送到 php 页面!
    猜你喜欢
    • 1970-01-01
    • 2013-12-13
    • 2018-03-07
    • 2011-03-05
    • 1970-01-01
    • 2011-03-05
    • 2010-12-27
    • 2010-12-05
    • 1970-01-01
    相关资源
    最近更新 更多