【问题标题】:AJAX request not sending complete data in php pageAJAX请求未在php页面中发送完整数据
【发布时间】:2018-08-04 09:54:09
【问题描述】:

我一直在尝试通过 AJAX 在我的 Web 应用程序中发布状态,该 AJAX 向 PHP 页面发送请求,并且 PHP 页面进一步处理信息。

function Upload_Status(id){
  var description=$('#Txt-editor').val();
  var data="q="+description;
  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'status.php', true);
  xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  xhr.onload = function () {
    var  response=this.responseText;
    if (!(response=="" || response==null)) {
      document.getElementById(id).innerHTML = response;
    }
  };
  xhr.send(data);
}

status.php

echo $_POST['q'];

有时会返回半个字符串和四分之一。我不知道问题是什么,因为我使用的是文本编辑器,我也更改了编辑器,但是当它生成 HTML 代码时,就会产生问题。

有什么帮助吗?

【问题讨论】:

  • 请将xhr.onload改为xhr.onreadystatechange
  • status.php 也只是 echo $_POST['q'];,仅此而已?
  • 使用 jQuery ajax
  • @GufranHasan 我也试过这个 xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById(id).innerHTML = this .responseText; }};但返回同样的问题。在得到响应之前,如果我显示结果,这将在 javascript 警报中返回完整的 html 代码,但在打开 status.php 页面后,这将返回一半字符串。
  • 你可以 console.log() 响应。你说的半弦是什么意思?它是否将 html 页面减半?你是如何生成 html 响应的。另外请检查您是否没有在返回时将其解析为 json 或任何内容。

标签: javascript php ajax


【解决方案1】:

我自己解决了这个问题。 问题出在特殊符号、逗号和引号等。如果我加密从 JS 发送的信息并解码 JSON 响应并从 PHP 返回响应我再次将此响应编码为 JSON,那么这个问题就解决了:-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多