如何通过ajax请求发送html内容?
我有一个带有文本区(tinymce)的表单,用于输入内容。当我执行ajax请求时,出现了以下错误: 潜在危险的请求。表单 从客户端检测到值 然后我试过类似的方法如何通过ajax请求发送html内容?,html,ajax,jquery,request,send,Html,Ajax,Jquery,Request,Send,我有一个带有文本区(tinymce)的表单,用于输入内容。当我执行ajax请求时,出现了以下错误: 潜在危险的请求。表单 从客户端检测到值 然后我试过类似的方法 html.encodeURIComponent()或escape()但错误仍然存在 HTML: 我一按提交按钮,错误就出现了。没有提出ajax请求。我已尝试将ValidateRequest=“false”添加到aspx页面,但问题仍然存在 感谢您的帮助 $.post('/foo', { htmlContent: '<someHtm
html.encodeURIComponent()
或escape()
但错误仍然存在
HTML:
我一按提交按钮,错误就出现了。没有提出ajax请求。我已尝试将ValidateRequest=“false”
添加到aspx页面,但问题仍然存在
感谢您的帮助
$.post('/foo', { htmlContent: '<someHtml/>' }, function(result) {
alert('ok');
});
如果是ASP.NET MVC应用程序,则可以使用以下属性装饰要发布到的控制器操作:
[HttpPost]
[ValidateInput(false)]
public ActionResult Foo()
{
...
}
还需要注意的是,如果您运行的是.NET 4.0,您将在web.config中添加以下内容:
<httpRuntime requestValidationMode="2.0" />
在我看来,另一个有效但缓慢的选择是对HTML字符串进行base64编码。 我使用了jQuery的base64扩展:
var html = ...my html unsafe text...
var encodedHtml = $.base64.encode(html);
我也这么想,所以我尝试对html内容进行编码,但仍然没有找到任何内容~。~您不需要对任何内容进行编码。如果您使用
数据
散列发送参数,jQuery将负责编码。您能给我一个例子或到tut的链接吗?谢谢!什么教程?您是否尝试了我的建议?在服务器端是否禁用了输入验证?如果是,你具体是如何做的?您正在使用的框架的哪个版本?这很酷:)否则序列化会出错,这要感谢Guy必须使用btoa()
进行编码,使用atob()
进行解码。
[HttpPost]
[ValidateInput(false)]
public ActionResult Foo()
{
...
}
<httpRuntime requestValidationMode="2.0" />
var html = ...my html unsafe text...
var encodedHtml = $.base64.encode(html);