gpt4 book ai didi

javascript - 如何清理 XML 对象以避免 "Content not allowed in prolog"错误?

转载 作者:行者123 更新时间:2023-12-03 05:46:52 24 4
gpt4 key购买 nike

我有一个从 AJAX 调用中检索到的 XML 对象,并对其进行了一些操作:

$.ajax({
url: "url_of_xml",
type: 'GET',
dataType: 'xml',
success: function (xml) {
var sld_doc= $(xml)

// manipulations with the XML file
}
})

XML 文件已正确修改,并且符合我的需要(添加/修改的节点)。现在我需要 POST 修改后的 XML(到 GeoServer 实例):

      $.ajax({
url: "geoserver/rest/styles",
type: 'POST',
data: sld_doc,
headers: {
"Content-Type": "application/vnd.ogc.sld+xml"
},
dataType: 'json',
success: function (data) {a
console.log(JSON.stringify(data));
},
error: function (x, e) {
console.log(x.status + " " + x.responseText);
}
});

我收到错误:500 org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

据我所知,这是由 XML 文档开头的标记之前的字符引起的。

如何清除 XML 对象的请求,以便将其正确发送到服务器?我可以使用 sld_doc.find("node_name") 访问节点但如何检查第一个节点( <?xml> )之前的无效字符?

最佳答案

此时您正在传递一个 jQuery 对象。尝试打开它,并设置正确的数据类型:

 $.ajax({
url: "geoserver/rest/styles",
type: 'POST',
data: sld_doc[0],
headers: {
"Content-Type": "application/vnd.ogc.sld+xml"
},
dataType: 'xml',
success: function (data) {a
console.log('success');
},
error: function (x, e) {
console.log('error');
}
});

关于javascript - 如何清理 XML 对象以避免 "Content not allowed in prolog"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40306958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com