有没有办法在页面的所有 ajax 请求中发送令牌,而无需在每个 $.ajax({}) 调用中写入它?
问问题
3454 次
3 回答
0
首先,您必须在脚本行的开头进行设置:
$(function () {
var token = $('input[name="_csrf"]').val();
$(document).ajaxSend(function(e, xhr, options) {
console.log("ajax token!!!");
xhr.setRequestHeader('X-CSRF-Token', token);
});
});
然后你通常可以进行所有的ajax调用......
$(function(){
$('#ddlGiro').change(function(){
var contentResult=document.getElementById('divComboComercio');
var giro = $("#ddlGiro").val();
$.ajax({
url: [[@{'/comun/comercios/obtener/'}]] + giro,
data: {"origen" : 'AsignarLote'},
dataType:'text',
cache:false,
type:'POST',
success:function(response){
contentResult.innerHTML=response;
}
});
});
});
于 2014-05-19T22:17:16.750 回答
0
您可以全局设置 this
var token = "some value";
$.ajaxSetup
(
{
cache:false,
beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', token); }
}
);
或者您可以在 beforesend 选项中单独设置特定请求。
beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', token); }
}
于 2012-11-28T15:22:04.230 回答
0
使用全局beforeSend
AJAX 事件来修改任何 AJAX 请求:http ://docs.jquery.com/Ajax_Events
更新:我刚刚检查过,似乎这个事件将被弃用,所以改用这个: http: //api.jquery.com/jQuery.ajaxPrefilter/
于 2012-11-28T09:57:53.267 回答