2016-02-24 4 views
0

Я новичок в этом, и я пытаюсь войти в систему и получить токен, чтобы ионные и laravel могли общаться. Я использую спутник и jwt на laravel. на пост человека я получить маркер обратно:ionic laravel XMLHttpRequest не может загрузить

это то, что я получаю Loging в с ионными: [введите описание изображения здесь] [2]

ошибка говорит:

XMLHttpRequest не может нагрузка http://localhost:8000/api/authenticate. Ответ на запрос перед полетом не проходит проверку контроля доступа. Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Origin 'http://localhost:8100', следовательно, не допускается.

и да, на моей стороне Laravel, я включил

заголовок ("Access-Control-Allow-Origin: *");

, что я здесь отсутствует, спасибо

+0

Библиотека [CORS in Laravel 5] (https://github.com/barryvdh/laravel-cors) решила проблему OP, как он упомянул в ответе, который был удален, когда я пытался его отредактировать. – TylerH

ответ

0

Есть много факторов, почему это происходит. ошибка может произойти, потому что у вас нет заголовков доступа, и браузеры получают это и блокируют ваши запросы.

Это также случается, когда ваш сервер испытывает внутренние ошибки, такие как 500,403,401 и т. Д., Вы можете добавить заголовки к жизненному циклу запросов (например, в промежуточном программном обеспечении для фильтрации всех запросов api) в вашем приложении laravel, но иногда ошибка 500 или даже echo или dd() прерывает весь жизненный цикл запроса и возвращает ошибки, КОТОРЫЕ браузер не может интерпретировать с помощью вызова ajax, и поэтому он теряет заголовки, которые вы неявно добавили, поэтому браузер возвращается к ошибке запроса перед полетом.

Единственное решение, которое я предлагаю, - это правильная обработка ошибок в коде и возврат ошибок в ответ и возврат их в формате json.

public function someController extends Controller{ 
    public function Foo(Request $request){ 
    $input_bag = [ 
      'some input' => first_$input, 
      'another important input' => $second_input,     
     ]; 

     $i = 0; 
     foreach ($input_bag as $key => $value) { 
      $value = trim($value); 

      if (empty($value)) { 
       $error_bag[$i] = "$key empty"; 
       $i++; 
      } else { 
       // 
      } 
     } 
     //filter of false or null values 
     if (array_filter($error_bag)) { 
      return response()->json($error_bag, 400); 
     } 


    } 

это возвращает ответ json ошибок при запуске кода. и хорошее использование пробных уловов и возвращение соответствующих ответов могут сделать вашу жизнь отладки легкой.

 Смежные вопросы

  • Нет связанных вопросов^_^