我使用jQuery' $.ajax()
与服务器进行通信。我传递了从MS Word复制的文本框的值。所以它可能包含XML标签,这就是问题所在。如果我将变量传递给URL:
var url = "someUrl¶m1=" + encodeURIComponent(val1) + "¶m2=" + encodeURIComponent(val2)..."
我将在Firefox中收到以下错误消息:
IE中的没有良好的形式
和以下内容:
XML5610:引用字符预期。第6行,第20行
但是,如果我通过AJAX的data
属性传递值,那就可以了:
$.ajax({
data: {
'param1' : val1,
'param2' : val2
...
}
});
我不会有错误消息。但为什么会这样呢?相同的数据传递给AJAX。我尝试设置contentType
和dataType
,但是当我在网址中传递值时,它无效。
那么在Url中传递值时如何避免错误消息?
------编辑
不工作:
transUrl = "/XMII/Runner?Transaction=some_Mii_transaction&Content-Type=text/xml" +
"&Category=" + category +
"&Text=" + encodeURIComponent(content) +
"&Title=" + encodeURIComponent(title) +
"&OutputParameter=OutputXML";
$.ajax({
type: "POST",
url: transUrl,
dataType: "xml",
success: function (result) {
...
}
});
工作:
$.ajax({
type: "POST",
data: {
"Category" : category ,
"Text" : content ,
"Title" : title
},
url: "/XMII/Runner?Transaction=some_Mii_transaction&Content-Type=text/xml&OutputParameter=OutputXML",
dataType: "xml",
success: function (result) {
...
}
});
通常两种解决方法都有效......只有当content
从MS-Word复制到文本框中并且可能有"富有"时才会出现问题。 XML格式化