【发布时间】:2014-10-28 11:20:08
【问题描述】:
我正在使用 AJAX 将 div 的内容发布到我的 C# mvc 控制器。
AJAX 帖子如下所示:
$.ajax({
url: '/Home/SaveContent',
type: 'POST',
data: {
model: modelDataJson,
activeId: activeId,
contentToUpdate: $("div#" + activeId).html()
},
dataType: 'json',
success: function (data) {
alert("Content hits controller. Id: " + activeId);
},
error: function () {
alert("error");
}
});
我正在使用一个所见即所得的编辑器,它是一个带有 id 的 div:activeId。
所以我要发布的是这一行:contentToUpdate: $("div#" + activeId).html()
下面这个 div 是哪个:
<div id="WelcomeText" data-photo="15" class="click2edit" style="display: block;">
som content here
</div>
如果我将其发布在我的 c#-controller-method 上方并且一切正常。
但是如果我在下面发布这个,error: function () { alert("error");} 就会被击中:
<div id="WelcomeText" data-photo="15" class="click2edit" style="display: block;">
<p>som content here</p>
</div>
所以我的问题是:为什么帖子在包含 HTML 时不起作用?我错过了什么,好像contentToUpdate: $("div#" + activeId).html() 不包括子元素?
【问题讨论】:
-
ASP.NET 曾经有一个反 XSS 过滤器,可以阻止包含看起来像 HTML 的内容的请求。你不会遇到这样的事情吧?