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

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

PHPz
PHPz원래의
2023-04-12 09:04:331036검색

프런트엔드와 백엔드 분리 개발이 인기를 끌면서 도메인 간 요청이 점점 더 일반적인 요구 사항이 되었습니다. thinkphp 프레임워크를 사용하여 개발할 때 도메인 간 요청 백그라운드 컨트롤러 메서드를 구현하는 방법은 무엇입니까? 이 기사에서는 도메인 간 요청을 완료하기 위해 thinkphp 프레임워크와 함께 제공되는 Header 클래스 및 타사 라이브러리를 사용하는 방법을 소개합니다.

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. cors 확장 구성

프로젝트의 config 폴더에서 cors.php 파일을 만들고 다음 코드를 입력하세요.

<?php

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

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

  1. 구성 파일 수정

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

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

크로스 도메인이 필요한 컨트롤러 메소드에서 요청을 직접 호출할 수 있습니다. 도메인 간 요청 설정을 구현하는 cors 확장의 메서드:

use think\facade\Cors;

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

이런 방식으로 설정한 후 도메인 간 요청을 구현할 수 있습니다.

요약하자면, thinkphp 프레임워크의 도메인 간 요청 백그라운드 컨트롤러 메서드를 구현하려면 Header 클래스나 타사 라이브러리를 사용할 수 있습니다. Header 클래스를 사용하여 응답 헤더 정보를 수동으로 설정하고 타사 라이브러리를 사용하여 설정 프로세스를 단순화합니다. 구체적인 구현 방법은 귀하의 필요에 따라 선택할 수 있습니다.

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

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