javascript - AJAX:responseXML 返回 null,但 ResponseText 将 XML 作为字符串返回

标签 javascript php ajax xml

我正在尝试从服务器端 (PHP) 检索 XML 文件,然后将其发送到客户端 (JavaScript)。我遇到的问题是responseXML 不断返回null。但是,如果我将其更改为responseText,它会以字符串形式返回 xml 文件,因此这告诉我 .js 可以从服务器端接收 xml 文件。

<小时/>

购物车.js

if (window.XMLHttpRequest)
{ 
  xHRObject = new XMLHttpRequest();
}

else if (window.ActiveXObject)
{ 
  xHRObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function loadDoc() 
{

  xHRObject.open("GET", "cart.php", true);


  xHRObject.onreadystatechange = function() 
  {      
  if (xHRObject.readyState == 4 && xHRObject.status == 200) 
  {        
    myFunction(xHRObject);
  }

  }

  xHRObject.send();
}

function myFunction(xml) 
{  
  var xmlDoc = xml.responseXML;

  alert(xmlDoc);

 ...

}
<小时/>

购物车.php

<?php 

 header('Content-Type: text/xml');

 $xmlFile = "cart.xml";

  $doc = new DOMDocument();
  $doc->load($xmlFile);

  $strXml = $doc->saveXML(); 
  echo $strXml;


?>

希望这里有人可以帮助我,因为我在网上搜索了这个问题,但找不到解决方案。我也尝试过解析responseText:

var parser = new DOMParser();
var xmlDoc = parser.parseFromString(XHR.responseText, "text/xml");

但它永远无法返回节点。

任何帮助将不胜感激!

谢谢

解决方案:php文件顶部有空行

最佳答案

问题是 php 文件顶部有一个空行。必须删除它,这样就不会打印出额外的(不必要的)内容。

关于javascript - AJAX:responseXML 返回 null,但 ResponseText 将 XML 作为字符串返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33209155/

相关文章:

javascript - 防止iOS 11将输入元素放在焦点上

javascript - 如何显示和隐藏元素,使用 JavaScript(不是 jQuery)将值从 JavaScript 传递到 html 元素?

javascript - 使用 javascript 获取主机名(基本 URL)

获取组合框的选定文本的PHP代码

php - 使用 post 发送参数并获取到 SQL 服务器

javascript - HTTP 请求成功后为 "Uncaught SyntaxError: Unexpected token <"

javascript - 异步函数与等待

javascript - 使用 jQuery Dialog 动态显示基于表格的信息

javascript - 通过 XMLHTTPRequest 发布时无法设置自定义编码

javascript - 调用 api 时出现错误已被 CORS 策略阻止