Нет данных ответа от Laravel API с помощью Axios - PullRequest
0 голосов
/ 25 марта 2019

Я настраиваю аутентификацию, используя Laravel (Laravel Framework версия 5.8.4) в качестве REST API, но когда я делаю пост-запрос с использованием Axios, я получаю пустую строку.

Вот мой код в Laravel: конечная точка входа в систему на моем главном контроллере:

 class MainController extends Controller
{

public function login(Request $request){

$data = [
'message' => 'yo'
];

return Response::json($data, 200);

 }
}


Вот мой код Axios (из метода Vue.js):

methods: {

      submitRegistration: function() {

    axios.post('http://envelope-api.test/api/auth/login', {
    name: this.form.name,
    email: this.form.email,
    password: this.form.password,
    password_confirmation: this.form.password_confirmation
  })
  .then(function (response) {
      console.log("here's the response")
      console.log(response);
    })
  .catch(function (error) {
    console.log(error);
  });

    },
  }

Вот ответ от Почтальона (все работает!)

{
    "message": "yo"
}

Вот ответ на мой запрос axios в консоли (пустая строка, где данные?):

{data: "", status: 200, statusText: "OK", headers: {…}, config: {…}, …}

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

Я понял это. Спасибо за вашу помощь.

У меня было это расширение chrome, позволяющее использовать CORS (Cross Origin Resource Sharing), чтобы я мог выполнять запросы API от localhost (по-видимому, не нужны для Postman?).

Я отключил его и установил локально на Laravel, используя этот пост (ответ от naabster)

После того, как я установил этот способ, он работал регулярно.

0 голосов
/ 25 марта 2019

Чтобы получить данные от axios, вы должны использовать response.data, а не просто response.

Редактировать: Попробуйте ответить помощником.

response()->json($data);

...