我基本上想做一个ajax post来发送一些stateId并从那个状态中取回一些城市列表。如何在使用ajax post时处理CSRF攻击?
@Html.DropDownList("states", (SelectList)ViewBag.States)
@Html.AntiForgeryToken()
我不喜欢这样的要求:
function PopulateTable() {
var x=$("#frmAjax").serialize();
$.ajax({
url: '@Url.Action("GetCities")',
type: 'POST',
dataType: 'json',
data: [1]
success: function (data) {
var target = $(".displayData tbody");
target.empty();
for (var i = 0; i < data.length; i++) {
target.append('
' + data[i].Id + '' + data[i].Name + '' + data[i].Population+ '');}
}
});
}
动作是这样的
[ValidateAntiForgeryToken]
public JsonResult GetCities([2])
{
var cities= new Service().GetCities(stateId);
return Json(classes);
}
我应该把,而不是什么[1] [2]因此它可以工作?我基本上希望这个ajax post与AntiForgeryToken()和ValidateAntiForgeryToken一样安全。 谢谢。
2011-09-20
gigi