2017-12-16 7 views
0

에 액세스 할 수 없습니다 (XAMPP)/CodeIgniter의 메신저는 각 4를 통해 액세스를 시도하고 브라우저 콘솔에서이 오류를 보여주는 유지합니다. api는 우편 배달부에서 잘 작동합니다.각도 4 HTTP 요청, 나는 로컬 호스트에 API를 API 함수

[파이어 폭스] :

크로스 원산지 요청 차단 : 동일한 기원 정책 http://lvh.me/ci-abc/api/get_alltasks에서 원격 자원을 읽어 허용하지 않습니다. (이유 : CORS 헤더 'Access-Control-Allow-Origin'누락).

[크롬] :

http://lvh.me/ci-abc/api/get_alltasks를로드하지 못했습니다

: 없음 '액세스 제어 - 허용 - 원산지'헤더가 요청 자원에 존재합니다. 따라서 'http://localhost:4200'의 출처는 허용되지 않습니다. .

API URL을 localhost 및 127.0.0.1로 변경하려고했지만 작동하지 않았습니다. 내가 메신저 뭔가를 놓친 경우 초급 개발자가 너무 실례입니다. PHP에 CodeIgniter의에서 각도 4

gettasks() 
    { 
    return this.http.get('http://lvh.me/ci-abc/api/get_alltasks') 
    .map(res=>res.json()); 
    } 

API 함수의

서비스 기능이

function get_alltasks_get() 
    { 
     { 
      $result = $this->todo_model->get_alltasks(); 

      if ($result) { 
       $this->response($result, 200); 
      } else { 
       $this->response("No record found", 404); 
      } 
     } 
    } 

답변

0

CORS는

브라우저는 크로스 사이트 HTTP headers 특정로부터 를 시작하는 요청 전송이내또는 Fetch API. 그것은 또한 크로스 사이트 응답으로 다시 전송 특정 HTTP 헤더를 볼 것으로 예상하고있다.

요청을 시작하고 서버의 응답뿐만 아니라 각 헤더의 토론, can be found in the HTTP Access Control (CORS) 기사를 처리하고이 하나에 동반자 기사로 읽어야한다는 샘플 자바 스크립트 코드를 포함하여 이러한 헤더의 개요.

이 하나 동반자 기사로 읽어야합니다. This article 처리를 처리 액세스 제어 요청 및 을 공식화 PHP의 액세스 제어 응답.

Apache를 구성 할 수있는 권한이없는 경우에도 PHP 스크립트에서 헤더를 보낼 수 있습니다. 그것은 당신의 PHP 스크립트에 다음을 추가하는 경우입니다 :

<?php 
header("Access-Control-Allow-Origin: *"); 
+0

'헤더를 살펴 보자;' 내가 내 API 컨트롤러의 생성자에 넣고 그것을했다! 감사합니다 –

+0

그리고 PHP 스크립트에 제목을 추가하면 상단에 넣어 @ YousufKhan 대답으로 표시하고 그것을 upvote주고 – M0ns1f

+0

괜찮아 남자 감사합니다 –

0

같은 도메인에 있지이기 때문에 서버는, 예를 들면, 당신이를 보내려고 경우는, 문제가 발생하지 각도 문제입니다 johndoe.com에서 example.com에 요청하면 오류가 발생합니다 그것을 차단 요청을 브라우저입니다!

브라우저는 먼저 header 요청을하고 요청이 허용되면 실제 메소드 유형을 가진 다음 요청이 발행됩니다.

CodeIgniter의 경우 허용 된 메소드에 OPTIONS를 추가하십시오.

header("Access-Control-Allow-Methods: GET, OPTIONS"); 
header("Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding"); 

는 ("액세스 제어 - 허용 - 원산지 : *")이 answer