我试图弄清楚为什么在尝试发送HTML数据时我的Ajax查询没有被发送到控制器。
使用这个简单的POST发送数据:
var contentFull = $("#contract").html();
var url2 = '@Url.Action("SavePDF", "FRP")';
$.ajax({
url: url2,
type: 'POST',
contenttype: 'text/plain',
async: true,
data: {
Content: contentFull
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
CustomAlert.render(XMLHttpRequest);
CustomAlert.render(textStatus);
CustomAlert.render(errorThrown);
CustomAlert.render("Error while posting SendResult");
},
success: function (result) {
CustomAlert.render("Yey?");
}
});
将contentFull更改为简单字符串(“test”)时; SavePDF函数将激活,内容将被正确填充。 按原样使用POST时;将触发succes函数,但完全忽略SavePDF函数。
我一直在想弄清楚原因是什么。 首先想到的是字符限制问题,应该通过POST来解决。
答案 0 :(得分:1)
由于我仍然无法发表评论,我将使用回答功能。 我认为您不需要指定contenttype和async,默认情况下async为true,contenttype text / plain将不允许您发送html内容。
var contentFull = $("#contract").html();
var url2 = '@Url.Action("SavePDF", "FRP")';
$.ajax({
url: url2,
type: 'POST',
data: {
Content: contentFull
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
CustomAlert.render(XMLHttpRequest);
CustomAlert.render(textStatus);
CustomAlert.render(errorThrown);
CustomAlert.render("Error while posting SendResult");
},
success: function (result) {
CustomAlert.render("Yey?");
}
});
答案 1 :(得分:1)
下面找到答案! https://www.owasp.org/index.php/ASP.NET_Request_Validation
由于安全性XSS问题,Asp.net请求验证忽略了我的请求。在我的MVC控制器中使用标签[ValidateInput(false)];该功能按预期工作!
答案 2 :(得分:0)
var contentFull = $("#contract").html();
var url2 = '@Url.Action("SavePDF", "FRP")';
$.ajax({
url: url2,
type: 'POST',
async: true,
data: {
Content: contentFull
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
CustomAlert.render(XMLHttpRequest);
CustomAlert.render(textStatus);
CustomAlert.render(errorThrown);
CustomAlert.render("Error while posting SendResult");
},
success: function (result) {
CustomAlert.render("Yey?");
}
});