如何在 Prototype.js 中使用 Ajax 获取 XML 文件(而不是字符串)?
-
09-06-2019 - |
题
这段代码来自 原型.js. 。我看过大概 20 个不同的教程,但我不明白为什么这不起作用。我得到的回应是空的。
new Ajax.Request(/path/to / xml / file.xml, {
method: "get",
contentType: "application/xml",
onSuccess: function(transport) {
alert(transport.responseXML);
}
});
如果我改变 responseXML
到 responseText
, ,然后它会以字符串形式提醒我 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”而不是您拥有的任何类型
希望我能为你们中的一个人留出一些时间。