有关Html.AntiForgeryToken()的使用其实网上的说明很多了,比如http://blog.csdn.net/cpytiger/article/details/8781457

那么我们写的AJAX调用怎么办了,难道需要修改所有的ajax请求数据吗?我个人比较懒惰喜欢写一个通用的代码.其实原理很简单就是拦截ajax请求,然后追加自己的数据.注意在ajax传输数据的时候可以是String/object,所以这里需要处理一下:

if (typeof data !== "string") {
data = $.param(data);
}

一般我们都是在ready方法中拦截指定方法:

        var oldajax = $.ajax;
$.ajax = function () {
var len = arguments.length;
for (var i = 0; i < len; i++) {
var data = arguments[i].data;
var type = $.trim(arguments[i].type);
type = type.toLowerCase();
if (data && type=="post") {
var tokenstr = $(document.getElementsByName("__RequestVerificationToken")).val();
if (typeof data !== "string") {
data = $.param(data);
}
data = data + "&__RequestVerificationToken=" + tokenstr;
arguments[i].data = data;
}
}
oldajax.apply(null, arguments);
}

全部的js code 如下:

 $(function () {
var oldajax = $.ajax;
$.ajax = function () {
var len = arguments.length;
for (var i = 0; i < len; i++) {
var data = arguments[i].data;
var type = $.trim(arguments[i].type);
type = type.toLowerCase();
if (data && type=="post") {
var tokenstr = $(document.getElementsByName("__RequestVerificationToken")).val();
if (typeof data !== "string") {
data = $.param(data);
}
data = data + "&__RequestVerificationToken=" + tokenstr;
arguments[i].data = data;
}
}
oldajax.apply(null, arguments);
} $('#btn1').click(function () {
$.ajax({
type: "POST",
url: "home/SecurityPost",
// data: "name=John&location=Boston",
data: { "name": "John", "location": "Boston" },
success: function (msg) {
alert("Data Saved: " + msg);
}
}); }); });

Html.AntiForgeryToken() 防止CSRF攻击 的AJaX应用的更多相关文章

  1. 切记ajax中要带上AntiForgeryToken防止CSRF攻击

    在程序项目中经常看到ajax post数据到服务器没有加上防伪标记,导致CSRF被攻击,下面小编通过本篇文章给大家介绍ajax中要带上AntiForgeryToken防止CSRF攻击,感兴趣的朋友一起 ...

  2. 转:MVC Html.AntiForgeryToken() 防止CSRF攻击

    (一)MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site requ ...

  3. [转]MVC Html.AntiForgeryToken() 防止CSRF攻击

    [转]MVC Html.AntiForgeryToken() 防止CSRF攻击 本文转自:http://blog.csdn.net/luck901229/article/details/8261640 ...

  4. MVC Html.AntiForgeryToken() 防止CSRF攻击 - CSDN博客

    原文:MVC Html.AntiForgeryToken() 防止CSRF攻击 - CSDN博客 (一)MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.A ...

  5. [ASP.NET MVC]@Html.AntiForgeryToken() 防止CSRF攻击

    MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site request ...

  6. ajax中加上AntiForgeryToken防止CSRF攻击

    经常看到在项目中ajax post数据到服务器不加防伪标记,造成CSRF攻击 在Asp.net Mvc里加入防伪标记很简单在表单中加入Html.AntiForgeryToken()即可. Html.A ...

  7. 记得ajax中要带上AntiForgeryToken防止CSRF攻击

    经常看到在项目中ajax post数据到服务器不加防伪标记,造成CSRF攻击 在Asp.net Mvc里加入防伪标记很简单在表单中加入Html.AntiForgeryToken()即可. Html.A ...

  8. MVC Html.AntiForgeryToken() 防止CSRF攻击

    转自:http://blog.csdn.net/cpytiger/article/details/8781457 一.MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(C ...

  9. 转载MVC Html.AntiForgeryToken() 防止CSRF攻击

    MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site request forgery)攻击的一个措施,它跟XSS(XSS又叫CSS:Cross ...

随机推荐

  1. android 地图

    ========= Y:\AMap_Android_API_3DMap_Demo\android_studio\AMap3DDemo>keytool -v -list -keystore C:\ ...

  2. rsync使用sudo权限

    1.在etc/sudoers增加,比如www-data这个账户的 www-data ALL=NOPASSWD:/usr/bin/rsync 2.使用时增加--rsync-path="sudo ...

  3. [廖雪峰] Git 分支管理(2):Bug 分支

    软件开发中,bug 就像家常便饭一样.有了 bug 就需要修复,在 Git 中,由于分支是如此的强大,所以,每个 bug 都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你 ...

  4. Revit API取得全部元素

    ;         ;         ;         ;         }         ;         }         ;         }         TaskDialog ...

  5. 深入System.Web.Caching命名空间 教你Hold住缓存管理

    一,System .Web.Caching与缓存工作机制简介 System.Web.Caching是用来管理缓存的命名空间,其父级空间是System.Web,由此可见,缓存通常用于Web网站的开发,包 ...

  6. 什么是.Net, IL, CLI, BCL, FCL, CTS, CLS, CLR, JIT

    什么是.NET? 起源:比尔盖茨在2000年的Professional Developers Conference介绍了一个崭新的平台叫作Next Generation Windows Service ...

  7. MySQL对数据表进行分组查询

    MySQL对数据表进行分组查询(GROUP BY) GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组.字段中值相等的为一组.基本的语法格式如下: GROUP BY 属性名 [HAVI ...

  8. Vmware ESXi添加共享磁盘

        1,ssh登录(两个虚拟机所在的宿主机)物理主机,创建共享磁盘(该步骤也可图形化操作) #cd /vmfs/volumes/4ffd9951-2c12a99a-ff2a-3440b59cd4f ...

  9. spring mvc改动配置文件路径

    1.1.  Classpath project文件夹 在web.xml文件例如以下配置: <!-- 配置spring mvc 的核心servlet --> <servlet> ...

  10. hdu2444The Accomodation of Students (最大匹配+推断是否为二分图)

    The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...