这段代码来自 原型.js. 。我看过大概 20 个不同的教程,但我不明白为什么这不起作用。我得到的回应是空的。

new Ajax.Request(/path/to / xml / file.xml, {
   method: "get",
   contentType: "application/xml",
   onSuccess: function(transport) {
      alert(transport.responseXML);
   }
});

如果我改变 responseXMLresponseText, ,然后它会以字符串形式提醒我 XML 文件。这不是一个提供 XML 的 PHP 页面,而是一个实际的 XML 文件,所以我知道它不是响应标头。

有帮助吗?

解决方案

如果transport.responseXML 为null,但您有transport.responseText 的值,那么我相信这是因为它不是有效的XML 文件。

编辑: 我刚刚注意到,在我们的代码中,每当我们请求 XML 文件时,我们都会将内容类型设置为“text/xml”。我不知道这是否有影响。

其他提示

只是想分享我下午处理这个问题的结果为 NULL 响应XML 回应。我的结果与问题中描述的完全一样:responseText 填充了 XML 文件,responseXML 为 NULL。由于我完全确定我的文件采用有效的 XML 格式,因此错误一定是在不同的地方。

正如在 原型 v1.7 文档,我将内容类型设置为 “应用程序/xml”. 。无论如何,发送的响应始终是“text/html”。

简而言之,我遇到的问题是,我的 XML 文件的结尾是 “.gpx” 因为它是 GPS 坐标的事实上的标准。我的本地 XAMPP Apache 安装的 mime-types 集合仅预见到结尾“xml”和“xsl”。添加“gpx”并重新启动服务器后,程序按预期顺利运行。

就我而言,有以下三种解决方案:

1)编辑Apache的“mime.types”文件。使用 XAMPP 安装,您可能会在“C:\xampp\apache\conf\mime.types”下找到它。搜索“application/xml”记录并更改如下:

application/xml xml xsl gpx

不要忘记重新启动服务器!

2)在a中添加mime类型 .htaccess 的相应文件夹。打开或创建 .htaccess 文件并添加以下行:

AddType application/xml xml xsl gpx

3)在上传过程中,将文件类型更改为“xml”而不是您拥有的任何类型

希望我能为你们中的一个人留出一些时间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top