如何使用jquery的ajax函数发送html标记

时间:2011-01-18 10:32:31

标签: jquery html asp.net-mvc

我的应用程序中有以下调用:

...
var message = "<label style='font-weight: bold; font-size: 14px; color: Gray;'>" + currentPlayerName + "</label>:  ";
$.ajax({
        url: "/Game/SendMessage",
        type: "POST",
        data: "matchID=" + matchID + "&message=" + message,
        dataType: "json",
        success: function (result) {
            if (result.Message != null) {
                var div_MessagePanel = $("#div_MessagePanel");

                $("#div_MessagePanel").append(result.Message + "<br />");
            }

            checkForUpdate();
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("Error occured 1!");

            sendMessage(message);
        }
    }); 

当我调用此函数时,它总是会丢失错误。我认为我想要发送回服务器的数据存在问题。 任何帮助表示赞赏。感谢。

3 个答案:

答案 0 :(得分:1)

我认为看看你真正尝试发送的内容会很有用。应根据您的数据选择内容类型。

以下是jQuery ajax API文档中的小引号。

  

数据选项可以包含形式为key1 = value1&amp; key2 = value2的查询字符串,或者包含{key1:'value1',key2:'value2'}形式的地图。如果使用后一种形式,则在发送之前使用jQuery.param()将数据转换为查询字符串。通过将processData设置为false可以避免此处理。如果我们希望将XML对象发送到服务器,则可能不希望进行处理;在这种情况下,我们还希望将applicationType / x-www-form-urlencoded中的contentType选项更改为更合适的MIME类型。

也许您还可以告诉我们 errorThrown 包含哪些内容?

答案 1 :(得分:0)

在传递给您的ajax调用之前,请尝试使用encodeURI对html字符串进行编码。

答案 2 :(得分:0)

你应该编码你的HTML。 它应该为你做到这一点:

message=$('<div>').append(message).html()

然后你可以用$ .ajax

传递它