PHP 在 ajax 中从不返回 readState 4 或 status 200

标签 php javascript ajax readystate

我有以下通用 Ajax 函数:

//run post request
function ajaxPost (divid, parameters, file) {

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() {
    alert ("ok")
  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      alert ("ready");
      alert (xmlhttp.responseText);
    divid.innerHTML=xmlhttp.responseText;
    }
  }

  xmlhttp.open("POST", file,true);

  //Send the proper header information along with the request
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", parameters.length);
xmlhttp.setRequestHeader("Connection", "close");



xmlhttp.send(parameters);
}

问题是此部分无法按预期工作:

xmlhttp.onreadystatechange=function() {
    alert ("ok")
  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      alert ("ready");
      alert (xmlhttp.responseText);
    divid.innerHTML=xmlhttp.responseText;
    }
  }

在浏览器中,我按照预期收到了多个“ok”警报,但 if 语句中的语句从未触发。我认为这意味着 php 正在返回状态更新,但由于某种原因永远不会返回就绪代码。这是怎么发生的 - 我不知道。

谁能告诉我为什么我收不到现成的代码?

php本身不是问题:

<?php

echo "new";

?>

我测试了函数输入(除法、参数和文件),这些都可以。 该函数之前在一个单独的项目中运行。

最佳答案

xmlhttp.open("POST", file,true);

文件的 URL 正确吗?
尝试从该 URL 进行回显。

关于PHP 在 ajax 中从不返回 readState 4 或 status 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438046/

相关文章:

javascript - 单击下拉导航菜单

javascript - 如何通过requirejs加载ckeditor

php - 通过 Ajax 在 Javascript 到 PHP 之间保留真正的 ARRAY OBJECT?

php - 将 GROUP BY 结果作为分隔变量返回

javascript - 继续在 HTML Canvas 中绘制线条

jquery - 两个 AJAX 函数调用 - 最佳实践

javascript - 如何在 PHP 标签外混合使用 json_encode 和 html 和 php

php - MySQL中如何使用不同表的数据获取相应的记录

php - 不会加载 CSS WordPress 网站

javascript - 不再使用innerHTML 进行AJAX 响应。 (代码没有得到响应)