Javascript 利用MVC 3中的jQuery-3.2.1使用防伪令牌防止CSRF攻击
我有上面的GetRequestVerificationToken()函数,我在使用jquery-1.7.2的asp.net MVC 3应用程序的Ajax调用中使用了该函数 升级到jquery-3.2.1后,出现以下错误: 未捕获错误:语法错误,无法识别的表达式:输入[name=”“\uu RequestVerificationToken”“] 在Function.Sizzle.error(jquery-3.2.1.js?v=2017_1:1580) 在Sizzle.tokenize(jquery-3.2.1.js?v=2017_1:2232) 在Sizzle.select(jquery-3.2.1.js?v=2017_1:2659) 在Function.Sizzle[as find](jquery-3.2.1.js?v=2017_1:884) 在jQuery.fn.init.find(jQuery-3.2.1.js?v=2017_1:2922) 在jQuery.fn.init(jQuery-3.2.1.js?v=2017_1:3032) 在jQuery(jQuery-3.2.1.js?v=2017_1:98) 在GetRequestVerificationToken(Common.js?v=2017_1:265) 设置日历时(Report.js?v=2017_1:81) 在HTMLDocument。((索引):967) 有人知道我需要做什么语法更改吗 下面是我的示例使用脚本Javascript 利用MVC 3中的jQuery-3.2.1使用防伪令牌防止CSRF攻击,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有上面的GetRequestVerificationToken()函数,我在使用jquery-1.7.2的asp.net MVC 3应用程序的Ajax调用中使用了该函数 升级到jquery-3.2.1后,出现以下错误: 未捕获错误:语法错误,无法识别的表达式:输入[name=”“\uu RequestVerificationToken”“] 在Function.Sizzle.error(jquery-3.2.1.js?v=2017_1:1580) 在Sizzle.tokenize(jquery
function GetRequestVerificationToken() {
var token = $('input[name=""__RequestVerificationToken""]').val();
var headers = {};
headers['__RequestVerificationToken'] = token;
return headers;
}
改变这个
$.ajax({
async: true,
cache: false,
data: { startDate: sdate, endDate: edate },
headers: GetRequestVerificationToken(),
type: 'POST',
url: '/' + virtualDirectory + '/Test/List',
success: function (data) {
$("#DivAction").html(data);
TableSorter('audit');
HideLoader();
},
error: function (msg) {
alert("err in Audit Trail Search");
HideLoader();
}
为此:
$('input[name=""__RequestVerificationToken""]')
您需要的所有信息都显示在错误消息中。解决问题的方法是重新编写GetRequestVerificationToken函数,如下所示
$('input[name="__RequestVerificationToken"]')
}你解决了对我有用的问题吗
function GetRequestVerificationToken() {
//var token = $('input[name=""__RequestVerificationToken""]').val();
var token = $('[name=__RequestVerificationToken]').val();
var headers = {};
headers['__RequestVerificationToken'] = token;
return headers;