Heim >Backend-Entwicklung >PHP-Tutorial >ionic2/angular2 kann nicht auf die von laravel5.3 erstellte API zugreifen

ionic2/angular2 kann nicht auf die von laravel5.3 erstellte API zugreifen

WBOY
WBOYOriginal
2016-12-01 00:25:251225Durchsuche

Laravel 5.3 API wurde konfiguriert

<code>    //category.service.ts
    private headers = new Headers({'Content-Type': 'application/json','Accept':'application/json','Authorization':'Bearer '+window.localStorage.getItem('token')});

    private heroesUrl = 'http://xingao.5188cms.com/api/user';  // URL to web api

    private handleError(error: any): Promise<any> {
      console.error('An error occurred', error); // for demo purposes only
      return Promise.reject(error.message || error);
    }
</code>

Wenn ich auf diese Weise darauf zugreife, wird XMLHttpRequest cannot load http://xingao.5188cms.com/api/user. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access. angezeigt. Es scheint ein domänenübergreifendes Problem zu sein, aber ich kann die Daten erfolgreich mit Postman abrufen

ionic2/angular2 kann nicht auf die von laravel5.3 erstellte API zugreifen

Schritt 2

Ich habe den Link in einen http://xingao.5188cms.com/test.php

geändert
<code>//test.php
<?php 
header("Access-Control-Allow-Origin: *");
$arr=['1','2'];

echo json_encode($arr);
?></code>

Funktioniert immer noch nichtXMLHttpRequest cannot load http://xingao.5188cms.com/test.php. Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.

Schritt 3

Ich habe den Link in einen /test.json geändert, aber er funktioniert

Was ist der Grund? . . .

Antwortinhalt:

Laravel 5.3 API wurde konfiguriert

<code>    //category.service.ts
    private headers = new Headers({'Content-Type': 'application/json','Accept':'application/json','Authorization':'Bearer '+window.localStorage.getItem('token')});

    private heroesUrl = 'http://xingao.5188cms.com/api/user';  // URL to web api

    private handleError(error: any): Promise<any> {
      console.error('An error occurred', error); // for demo purposes only
      return Promise.reject(error.message || error);
    }
</code>

Wenn ich auf diese Weise darauf zugreife, wird XMLHttpRequest cannot load http://xingao.5188cms.com/api/user. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access. angezeigt. Es scheint ein domänenübergreifendes Problem zu sein, aber ich kann die Daten erfolgreich mit Postman abrufen

ionic2/angular2 kann nicht auf die von laravel5.3 erstellte API zugreifen

Schritt 2

Ich habe den Link in einen http://xingao.5188cms.com/test.php

geändert
<code>//test.php
<?php 
header("Access-Control-Allow-Origin: *");
$arr=['1','2'];

echo json_encode($arr);
?></code>

Funktioniert immer noch nichtXMLHttpRequest cannot load http://xingao.5188cms.com/test.php. Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.

Schritt 3

Ich habe den Link in einen /test.json geändert, aber er funktioniert

Was ist der Grund? . . .

Access-Control-Allow-Origin
Domänenübergreifendes Problem
Dies ist eine Browserbeschränkung

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn