在URL中传递值会在JQuery ajax中生成错误

时间:2015-12-23 14:07:12

标签: jquery ajax xml xmlhttprequest

我使用jQuery' $.ajax()与服务器进行通信。我传递了从MS Word复制的文本框的值。所以它可能包含XML标签,这就是问题所在。如果我将变量传递给URL:

var url = "someUrl&param1=" + encodeURIComponent(val1) + "&param2=" + encodeURIComponent(val2)..."

我将在Firefox中收到以下错误消息:

  

没有良好的形式

IE中的

和以下内容:

  

XML5610:引用字符预期。第6行,第20行

但是,如果我通过AJAX的data属性传递值,那就可以了:

$.ajax({
    data: {
        'param1' : val1,
        'param2' : val2
        ...
    }
});

我不会有错误消息。但为什么会这样呢?相同的数据传递给AJAX。我尝试设置contentTypedataType,但是当我在网址中传递值时,它无效。

那么在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格式化

0 个答案:

没有答案