Показать сообщение отдельно
  #1 (permalink)  
Старый 12.01.2022, 06:26
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Как глобально вставить в load() headers
Приветствую!

Есть такой код, который работает.
$("#header_left_html").load(ajaxurl, {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')});

вызывает файл, а так же передает на сервер, для PHP, значение токена "9bd2c66bfa5ee747fc95d1850380fa10".
В упрощеннорм виде такой код:
<!doctype html>
<html lang="ru" class="no-js">
    <head>
		<meta name="csrf-token" content="9bd2c66bfa5ee747fc95d1850380fa10">
		<script src="/jquery-2.1.4.min.js"></script>
	</head>
    <body>
		<div class="all_cat">
			<div id="header_left_html"></div>
		</div>
	</div>			
	<script>	
		//вызывает файл header_left.html
		$('.all_cat').mouseover(function(event){
			var ajaxurl = HOMESITEURL + '/Index/header_left.html?__token__=' + $('meta[name="csrf-token"]').attr('content');
			$("#header_left_html").load(ajaxurl, {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')});
			$(this).unbind('mouseover');
		});	
	</script>		
</body>
</html>


Так как на сайте много используется load() и везде нужно передавать значение токена, то хочу добавлять значение токена через headers в load() добавив скрипт в <head> и убрав из $("#header_left_html").load(ajaxurl); лишнее:
<!doctype html>
<html lang="ru" class="no-js">
    <head>
		<meta name="csrf-token" content="9bd2c66bfa5ee747fc95d1850380fa10">
		<script src="/jquery-2.1.4.min.js"></script>
        <script>	
			$.ajaxSetup({
			headers: {
			'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
			}
			});
		</script>
	</head>
    <body>
		<div class="all_cat">
			<div id="header_left_html"></div>
		</div>
	</div>			
	<script>	
		//вызывает файл header_left.html
		$('.all_cat').mouseover(function(event){
			var ajaxurl = HOMESITEURL + '/Index/header_left.html?__token__=' + $('meta[name="csrf-token"]').attr('content');
			$("#header_left_html").load(ajaxurl);
			$(this).unbind('mouseover');
		});	
	</script>		
</body>
</html>

Но так не работает, значение токена не передается на сервер.

Что я делаю не так?
Заранее спасибо за помощь!
Ответить с цитированием