Токен CSRF не работает при вызове Laravel ajax - PullRequest
0 голосов
/ 10 марта 2020

Я проверил gizillion ответы на этот вопрос и по какой-то причине я не могу заставить это работать.

Я получаю ошибку:

401 (Несанкционированный)

Мой маршрут - защищенный маршрут API.

Мои данные:

let ajaxMainTemplate = {
  'mainTemplate': mainTemplate,
  'templateId': templateId,
  '_token': accessToken,
}

Мой ajax вызов:

$.ajax({
    type: 'POST',
    url:`../api/aiMainTemplate/${ajaxData.templateId}`,
    data: {
        _token: ajaxData._token,
        ajaxData
    },
    success: function(response) {
        console.log(response)
    }
})

Я попытался выше, чтобы проверить на основе другого ответа. Я положил токен за пределы объекта ajaxData. Я получаю ту же ошибку. Я также попытался:

$.ajax({
    type: 'POST',
    url:`../api/aiMainTemplate/${ajaxData.templateId}`,
    headers: { 'X-CSRF-TOKEN': ajaxData._token },
    data: ajaxData,
    success: function(response) {
        console.log(response)
    }
})

То же самое.

Я также подтвердил наличие токена, добавив console.log Есть идеи, что я с этим не так делаю?

1 Ответ

0 голосов
/ 10 марта 2020

Мой URL был за защищенным API-маршрутом, поэтому мне пришлось сделать ajax вызов, чтобы войти в него через ajax.

Учетные данные находятся в переменной ajaxData.

  $.ajax({
  type: 'POST',
  url: 'http://127.0.0.1:8000/api/login',
  data: ajaxData,
  success: function(response) {
     shopifyToken = response.success.token;
     getListProducts(shopifyToken);
  }
  });

С токеном shopify, сгенерированным из этого логина, он работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...