losaped
@losaped
Пьяный самурай

Как отправить ajax post c csrf?

Вот код, прошу выдать мне города:
if ($('select').is('#city')){
		$.post('/city/index', {_csrf: 'USER_CSRF_TOKEN'})
		.done(function(resp){
			$('#city').empty();

			_each(resp.cities, city)
			{
				$('#city').append($('<option value="' + city.id + '"> city.name</option>'));
			}	
		})
		.fail(function() {
			alert("error");
		});
	}

вот эта строчка 1 к 1 из документации, если не считать пути:
$.post('/city/index', {_csrf: 'USER_CSRF_TOKEN'})
не работает, получаю 403
может вместо строки USER_CSRF_TOKEN я должен использовать какое то конкретное значение, а это так, описательный термин?
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
losaped
@losaped Автор вопроса
Пьяный самурай
справился. в моем случае решение вот такое:
var csrf;
	$.get('/csrfToken').done(function (resp) {
		csrf = resp._csrf;
	});

	setTimeout(function(){
		if ($('select').is('#city')){
			console.log(csrf);
			$.post('/city/index', {_csrf: csrf })
			.done(function(resp){
				$('#city').empty();
				console.log(resp.cities);

				$.each(resp.cities, function(i, city){
					$('#city').append('<option value="' + city.id + '"> ' +city.name + '</option>');
				});	
			})
			.fail(function() {
				alert("error");
			});
		}
		}, 0	
	);


только как то все это криво выглядит. Если кому не лень, то напишите как это сделать красивее
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы