>백엔드 개발 >PHP 튜토리얼 >ionic2/angular2는 laravel5.3에서 생성된 API에 액세스할 수 없습니다.

ionic2/angular2는 laravel5.3에서 생성된 API에 액세스할 수 없습니다.

WBOY
WBOY원래의
2016-12-01 00:25:251223검색

Laravel 5.3 API가 구성되었습니다

<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>

이렇게 접속하면 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.라는 메시지가 뜹니다. 크로스도메인 문제인 것 같은데, postman을 이용해서 데이터를 성공적으로 가져왔습니다

.

ionic2/angular2는 laravel5.3에서 생성된 API에 액세스할 수 없습니다.

2단계

링크를 하나로 바꿨습니다http://xingao.5188cms.com/test.php

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

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

아직 작동하지 않습니다XMLHttpRequest cannot load http://xingao.5188cms.com/test.php. Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.

3단계

링크를 /test.json으로 변경했는데 작동합니다

이유는 무엇인가요? . . .

답글 내용:

Laravel 5.3 API가 구성되었습니다

<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>

이렇게 접속하면 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.라는 메시지가 뜹니다. 크로스도메인 문제인 것 같은데, postman을 이용해서 데이터를 성공적으로 가져왔습니다

.

ionic2/angular2는 laravel5.3에서 생성된 API에 액세스할 수 없습니다.

2단계

링크를 하나로 바꿨습니다 http://xingao.5188cms.com/test.php

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

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

아직 작동하지 않습니다XMLHttpRequest cannot load http://xingao.5188cms.com/test.php. Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.

3단계

링크를 /test.json으로 변경했는데 작동합니다

이유는 무엇인가요? . . .

Access-Control-Allow-Origin
교차 도메인 문제
브라우저의 한계입니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.