JQuery работает, но Axios нет - PullRequest
0 голосов
/ 25 июня 2018

Я отправляю простой запрос get в мой PHP BE, это мои запросы в jQuery и Axios соответственно:

$.ajax({
  url: "/?do=vueTestComponent-ReloadTime",
  success: (data) => console.log(data)
});

Vue.axios.get("/?do=vueTestComponent-ReloadTime").then((response) => {
  console.log(response)
})

, где jQuery возвращается правильно и заканчивается кодом 200, а Axios возвращает неправильно изаканчивается кодом 302.

Вот так я загружаю jQuery:

<script src="{$basePath}/components/tinymce/tinymce.jquery.min.js" type="text/javascript"></script>

Вот так я загружаю axios в мой main.js файл проекта Vue:

import axios from 'axios'
import VueAxios from 'vue-axios'

Также jQuery разрешает намного быстрее.

Я не могу понять, что я делаю неправильно, они оба должны быть идентичны.Это нюанс jQuery / Axios?

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Наконец, я обнаружил, что мне нужно указать в axios defaults, что мой запрос - XMLHttpRequest.

Итак, я создал глобальную переменную для экземпляра запросов, которые на самом деле XMLHttpRequest и настройки теперь выглядят так:

window.axios_instance = Vue.axios.create({
  baseURL: '/'
});

window.axios_instance.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"

Надеюсь, это кому-нибудь поможет!

0 голосов
/ 25 июня 2018

axios default not отправлять cookie при переходе между сайтами, возможно, это является причиной ответа 302.

см. withCredentials опция: https://github.com/axios/axios#request-config

Vue.axios.get("/?do=vueTestComponent-ReloadTime", {
  withCredentials: true,
}).then(...)
...