加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何通过ajax请求发送html内容?

发布时间:2020-12-15 23:12:59 所属栏目:百科 来源:网络整理
导读:我有一个带有textarea(tinymce)的表单用于输入内容.当我执行ajax请求时,我收到错误: A potentially dangerous Request.Form value was detected from the client 然后我尝试了类似的东西 html.encodeURIComponent()或escape()但错误仍然存??在 HTML: form
我有一个带有textarea(tinymce)的表单用于输入内容.当我执行ajax请求时,我收到错误:

A potentially dangerous Request.Form
value was detected from the client

然后我尝试了类似的东西

html.encodeURIComponent()或escape()但错误仍然存??在

HTML:

<form id="editForm" action="" method="post">
  <input type="text" id="title" name="title" />
  <textarea id="content" name="content"></textarea>
  <input type="button" id="submit" onclick="Submit();" />
</form>

脚本(我使用jQuery)

function Submit(){
 $.ajax({                
  url: 'ajax.aspx?type=addcontent&' + $('#editForm').serialize() + '&rnd=' + Math.random(),success: function(data) {
   alert('OK');
  }
 });
}

只要按下提交按钮,就会出现错误.没有发出ajax请求.我已经尝试将ValidateRequest =“false”添加到aspx页面,但问题仍然存在.

任何帮助表示赞赏!

解决方法

$.post('/foo',{ htmlContent: '<someHtml/>' },function(result) {
    alert('ok');
});

现在错误来自服务器端脚本,它不接受HTML. ASP.NET引擎将自动删除包含HTML的任何请求.有多种方法可以自行承担阻止此行为的风险.其中一个包括将ValidateRequest =“false”添加到aspx @Page头.

<%@ Page Language="C#" AutoEventWireup="false" ValidateRequest="false" %>

如果它是ASP.NET MVC应用程序,您可以使用[ValidateInput(false)]属性修饰要发布的控制器操作:

[HttpPost]
[ValidateInput(false)]
public ActionResult Foo()
{
    ...    
}

同样重要的是要注意,如果您运行的是.NET 4.0,则将以下内容添加到您的web.config中:

<httpRuntime requestValidationMode="2.0" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读