我的应用程序中有以下调用:
...
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);
}
});
当我调用此函数时,它总是会丢失错误。我认为我想要发送回服务器的数据存在问题。 任何帮助表示赞赏。感谢。
答案 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
传递它