有没有办法在页面的所有ajax请求中发送令牌,而不是在每个$ .ajax({})调用中写入?
答案 0 :(得分:0)
使用全局beforeSend
AJAX事件修改任何AJAX请求:http://docs.jquery.com/Ajax_Events
更新:我刚检查过,似乎不推荐使用此事件,因此请改用:http://api.jquery.com/jQuery.ajaxPrefilter/
答案 1 :(得分:0)
您可以全局设置此 var token =“some value”;
$.ajaxSetup
(
{
cache:false,
beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', token); }
}
);
或者你可以在beforesend选项中单独设置一个特定的请求。
beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', token); }
}
答案 2 :(得分: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;
}
});
});
});