Как опубликовать csrf-токен для соединения с помощью jquery

Мой csrf-токен отображается как метатег в макете моего приложения

<meta content="authenticity_token" name="csrf-param">
<meta content="28c5136f4ef175c620ead78cc6d9589b98be0b78" name="csrf-token">

Я записываю содержимое метатега csrf-token в объект конфигурации, а затем использую ajaxPrefilter, чтобы добавить его всякий раз, когда делаю сообщение с помощью jquery.

   $.ajaxPrefilter(function(options, originalOptions, jqXHR){
            if (options['type'].toLowerCase() === "post") {
                console.log("token got called" + configs.csrf_token);
                jqXHR.setRequestHeader('X-CSRFToken', configs.csrf_token);
            }
        });

Однако, когда я делаю пост, как показано ниже

$.post( "/images/external/url", { url: url, 'csrf-param': configs.csrf_token})
    .done(function( data ) {
     console.log( "Data returned: " + data );
    });

Я получаю 403 с неправильной ошибкой токена подлинности назад.

Csrf-param в посте - это я пытаюсь выяснить, было ли это как-то связано с этим, насколько я понимаю, заголовок запроса X-CSRFToken должен быть подходящей частью?

1 ответ

Решение

Читая csrf.js в Connect, я вижу, что заголовок должен быть X-CSRF-Token.

Другие вопросы по тегам