【发布时间】: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