>  기사  >  PHP 프레임워크  >  thinkphp가 도메인 간 요청을 완료하는 방법

thinkphp가 도메인 간 요청을 완료하는 방법

PHPz
PHPz앞으로
2023-04-13 16:22:233281검색

1. 헤더 클래스

thinkphp 프레임워크에서는 헤더 클래스를 사용하여 도메인 간 요청 기능을 구현하는 응답 헤더를 설정할 수 있습니다. 구체적인 방법은 컨트롤러 메소드에 다음 코드를 추가하는 것입니다.

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

그 중 첫 번째 코드 줄은 모든 소스의 도메인 간 요청이 허용됨을 나타내며 두 ​​번째 줄은 특정 소스로 설정할 수도 있습니다. 코드는 교차 도메인 요청에 의해 전달되는 요청이 허용됨을 나타냅니다. 이를 설정한 후에는 기본적인 교차 도메인 요청을 구현할 수 있습니다.

2. 타사 라이브러리

Header 클래스를 사용하여 도메인 간 요청을 설정하는 것 외에도 타사 라이브러리를 사용하여 이 프로세스를 단순화할 수도 있습니다. 다음은 주류 CORS(Cross-Origin Resource Sharing) 라이브러리 cors 확장을 예로 들어 타사 라이브러리를 사용하여 도메인 간 요청을 구현하는 방법을 소개합니다.

  1. cors 확장 설치

명령줄 창을 열고 다음 명령을 실행합니다:

composer require topthink/think-cors
  1. Configure cors Extension

프로젝트의 config 폴더에 cors.php 파일을 생성하고 다음을 입력합니다. 다음 코드 :

<?php

return [
    // 允许的请求域名
    &#39;allow_origin&#39;      => [&#39;*&#39;],
    // 允许的请求头信息
    &#39;allow_headers&#39;     => &#39;Origin, X-Requested-With, Content-Type, Accept&#39;,
    // 允许的请求方法
    &#39;allow_methods&#39;     => &#39;GET, POST, PUT, DELETE, PATCH&#39;,
    // 是否允许发送cookie
    &#39;allow_credentials&#39; => true,
    // 跨域请求缓存时间
    &#39;max_age&#39;           => 3600,
];

그 중 $allow_origin은 허용된 요청 도메인 이름을 나타내며, 특정 도메인 이름으로 설정할 수 있거나 와일드카드 문자 "*"는 $allow_headers가 허용된 요청 헤더 정보를 나타내고, $allow_methods는 허용된 요청 도메인 이름을 나타냅니다. $allow_credentials는 쿠키 전송 허용 여부를 나타내며, $max_age는 도메인 간 요청 캐시 시간을 나타냅니다.

  1. 구성 파일 수정

프로젝트의 config 폴더에서 app.php 파일을 찾으면 구성은 다음과 같습니다.

return [
    // ...
    &#39;middleware&#39; => [
        // ...
        \think\middleware\Cors::class,
    ],
];
  1. Call cors 확장

컨트롤러 메소드에서 는 교차 도메인 요청이 필요하므로 cors 확장의 메소드를 직접 호출하여 교차 도메인 요청 설정을 실현할 수 있습니다.

use think\facade\Cors;

public function index() {
    Cors::allowAllOrigin();
    return json([&#39;code&#39; => 200, &#39;msg&#39; => &#39;success&#39;]);
}

이런 방식으로 설정한 후에는 교차 도메인 요청을 실현할 수 있습니다.

위 내용은 thinkphp가 도메인 간 요청을 완료하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제