首页 新闻 会员 周边

ajax怎么把长字符串文本发送到后台

0
悬赏园豆:40 [已解决问题] 解决于 2014-01-04 21:52

本人各种菜鸟,捣鼓了好一会没弄出来。求指教ASP.NET MVC框架

<script type="text/javascript">
    function Send() {
        var str = "date='" + getContent()+"'";
        alert(str);
        $.ajax({
            type: "POST",
            url: "/Blogs/SaveBlog/", //这里不是some.php?date="+str
            data: str,
            datatype:Text,
            success: function (msg) {
                alert("Data Saved: " + msg);
            }
        });
    }
</script>

后台:

[HttpPost]
        public void SaveBlog(string data)
        {
            string dd = Request.Form["data"];
            int i = 0;
        }

 

怎么AJAX把长字符串文本发送到后台。JS应该怎么写,后台怎么接收的。参数的方法不行了呀

问题补充:

前台

大芝麻的主页 大芝麻 | 初学一级 | 园豆:4
提问于:2014-01-04 20:07
< >
分享
最佳答案
0

刚才看错了,修改下。

MVC 为了防止 HTML 注入攻击,会对传入 Action 的字符串参数进行检查,如果包含 HTML 代码,就会进行阻止。

MVC 4 可在 Action 上加上 [ValidateInput(false)] 允许当前 Action 接收 HTML 字符串:

[HttpPost]
[ValidateInput(false)]
public ActionResult SaveBlog(string data)
{
    //...
}

之前版本的 MVC 处理可能略有不同。

 

另外,你脚本中有处错误:

var str = "date='" + getContent()+"'";

高亮部分应该是 data,可能是不小心写错的吧。

脚本还是建议你写成如下:

$.ajax({
    type: "POST",
    url: "/Home/SaveBlog/",
    data: { data: getContent() },
    success: function (msg) {
        alert("Data Saved: " + msg);
    }
});

 

收获园豆:30
鹤冲天 | 老鸟四级 |园豆:2379 | 2014-01-04 20:46

不是要JSON数据哦,是一个很长的文本,这个文本还包括了HTML标签

大芝麻 | 园豆:4 (初学一级) | 2014-01-04 20:51

@大芝麻: 不好意思,刚才看错了,我修改了下回复,再看下吧。

鹤冲天 | 园豆:2379 (老鸟四级) | 2014-01-04 21:29

@大芝麻: 问题就在于你你传回后台的字符串中包含 HTML 标签。你使用的是 MVC 几?

鹤冲天 | 园豆:2379 (老鸟四级) | 2014-01-04 21:34

@鹤冲天: 3.5

大芝麻 | 园豆:4 (初学一级) | 2014-01-04 21:42

@大芝麻: 不是 .net 的版本,是 MVC 的版本,查看下你引用的 System.Web.Mvc.dll 的版本。如果是 4.0 或以上版本,Action 上加上 [ValidateInput(false)] 即可。

鹤冲天 | 园豆:2379 (老鸟四级) | 2014-01-04 21:47

@鹤冲天: 可以了,膜拜啊大侠,确实那里data写错了  [ValidateInput(false)]这个也没加,还有加上二楼的那个函数也安全点。祝新年心想事成!

大芝麻 | 园豆:4 (初学一级) | 2014-01-04 21:50
其他回答(1)
0

需要URL编码一下或者关闭ASP的防JS注入,默认是屏蔽 <等HTML符号的

收获园豆:10
56180825 | 园豆:1756 (小虾三级) | 2014-01-04 21:12

大侠能详细点么,我菜鸟

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2014-01-04 21:16

@大芝麻: encodeURIComponent()将数据编码后发送

支持(0) 反对(0) 56180825 | 园豆:1756 (小虾三级) | 2014-01-04 21:43

@56180825: 恩恩 后台不用参数的话用Request.Form要经过这个函数处理才取的到,谢谢

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2014-01-04 21:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册