찾다
백엔드 개발PHP 튜토리얼vue의 axios 구성 요소와 PHP 백엔드가 데이터를 교환하도록 하는 방법

이 글은 주로 vue의 axios 컴포넌트와 PHP 백엔드 사이의 데이터 교환 방법을 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다.

1. 머리말

axios vue 프로젝트 Ajax 기술을 사용하여 백엔드와 데이터를 교환하는 데 사용되는 컴포넌트입니다. Vue 작성자의 추천으로 상당수의 Vue 프런트엔드 개발자가 사용하기 시작했습니다. 그러나 실제 개발 과정에서는 프론트엔드에서 게시한 데이터를 백엔드에서 수신하지 못하는 경우가 가끔 발생합니다. PHP 언어 개발 배경을 예로 들면, PHP의 기본 사전 정의 변수 $_POST를 수신할 수 없습니다(파싱 실패 때문에). 이 문서의 목적은 프런트엔드 및 백엔드 데이터 상호 작용을 살펴보고 참조할 수 있는 다양한 솔루션을 제공하는 것입니다.

2. 현재 $_POST

Form Data
에서 허용하는 데이터 형식은 id:1과 같은 키-값 쌍입니다. , 다음은

role-name:ta
role-desc:xxxxxxxxx
id:2
cloud[cla]:001
cloud[cla_baijia]:001
cloud[cla_gongkai]:001
local[soft5]:001
local[soft6]:001
mgmt[mgmt-clouditems]:01

PHP 서버에서 받은 데이터가 실제로는 이런 모습입니다

role-name=ta&role-desc=xxxxxxxxx&id=2&cloud%5Bcla%5D=001&cloud%5Bcla_baijia%5D=001&cloud%5Bcla_gongkai%5D=001&local%5Bsoft-5%5D=001&local%5Bsoft-6%5D=001&mgmt%5Bmgmt-clouditems%5D=01

유난히 URL의 매개변수와 유사한가요?
이 키-값 쌍 데이터를 QueryString이라고 합니다. 브라우저의 기본 양식이 이 데이터를 보낼 때 요청 헤더를 application/x-www-form-urlencoded로 설정합니다.
QueryString은 PHP의 $_POST

클래식 프런트 엔드 라이브러리에 있는 jQuery ajax의 serialize() 메서드와 param() 메서드로 성공적으로 구문 분석할 수 있습니다. jQuery는 데이터를 QueryString으로 변환하는 솔루션입니다. JSON 데이터를 변환합니다.
그리고 jQuery의 ajax 요청은 들어오는 데이터의 형식을 결정하고 param() 메서드를 암시적으로 호출하여 json 데이터를 변환하므로 사용자는 데이터를 백그라운드에 성공적으로 제출하기 위해 json 데이터를 직접 제공하기만 하면 됩니다. 명시적으로(param() 메서드를 수동으로 호출할 기회가 많지 않습니다. 기본적으로 jq가 보내는 요청 헤더도 application/x-www-form-urlencoded입니다. 대부분의 경우 사용자가 수동으로 설정할 필요가 없습니다.

Axios로 돌아가면, 기본적으로 axios가 보내는 요청 헤더는 application/json입니다. 간단히 말하면 기본적으로 json을 백엔드로 전달하고 QueryString으로 변환하지 않습니다.

3. 솔루션

1. 프론트엔드는 데이터를 QueryString

으로 변환하고 stringify 메소드를 호출합니다.

<template>
  <p>
      <input>
  </p>
</template>

<script>
import axios from "axios"
import qs from "qs"
var json={
              "role-name": "ta",
              "role-desc": "xxxxxxxxx",
              "id": 2,
              "cloud": {
                "cla": "001",
                "cla_baijia": "001",
                "cla_gongkai": "001"
              },
              "local": {
                "soft-5": "001",
                "soft-6": "001"
              },
              "mgmt": {
                "mgmt-clouditems": "01"
              }
    };

export default {
    methods:{
        post(){
            axios.post("http://localhost/web/index.php/admin/login/login",json,{
                //配置`transformRequest` ,在向服务器发送前,修改请求数据,axios会根据修改后的数据,自动设置请求头
                transformRequest:[function(data){
                    return qs.stringify(data);//把数据转化为QueryString
                }]
            }).then(res=>{
                console.log(res);
            })
        }
    }
}
</script>

2. PHP 백엔드는 php://input을 사용하여 원본 데이터를 얻습니다.

프런트엔드에는 변경이 이루어지지 않습니다. 이 경우 미리 정의된 변수 $_POST를 구문 분석할 수 없기 때문에 PHP 백엔드는 php://input을 사용하여 원본 데이터를 가져온 다음 원하는 데이터로 변환할 수 있습니다. 형태.
PHP 백엔드가 기본 개발을 사용하는 경우 각 요청의 데이터를 처리하는 기능을 사용자 정의할 수 있습니다.
특정 프레임워크를 사용하여 PHP 백엔드를 개발하는 경우 프레임워크 자체가 php://input 처리를 지원하는지 여부에 따라 다릅니다. 간단한 테스트 방법은 소스 코드 전체 텍스트에서 php://input을 검색하는 것입니다. 프레임워크를 찾을 수 있으면 지원됨이고, 그렇지 않으면 지원되지 않으며 관련 처리 코드를 직접 확장해야 합니다.

PHP 프레임워크 yii2.0을 예로 들어, Vendor 디렉터리를 전문으로 검색해 보면 yiisoft->yii2->web->Request.php의 494번째 줄에 관련 처리 코드가 있는 것을 확인할 수 있습니다. .
실제 사용시에는 web.php 구성 파일에서만 구성하면 됩니다

    'components' => [
        'request' => [
            'parsers' => [
                'application/json' => 'yii\web\JsonParser'
            ],
            // 其他配置
        ],
        //其他组件配置
    ]

위는 프론트 엔드 처리와 백엔드 처리의 두 가지 솔루션이며 실제 상황에 따라 선택할 수 있습니다

위는 이 글의 전체 내용이 모든 분들의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용을 보시려면 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

yii 데이터베이스에 대한 긴 연결을 설정하는 방법

위 내용은 vue의 axios 구성 요소와 PHP 백엔드가 데이터를 교환하도록 하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 세션에 저장된 데이터를 어떻게 수정합니까?PHP 세션에 저장된 데이터를 어떻게 수정합니까?Apr 27, 2025 am 12:23 AM

tomodifyDatainAphPessess, startSessionstession_start (), 그런 다음 $ _sessionToset, modify, orremovevariables.

PHP 세션에 배열을 저장하는 예를 제시하십시오.PHP 세션에 배열을 저장하는 예를 제시하십시오.Apr 27, 2025 am 12:20 AM

배열은 PHP 세션에 저장할 수 있습니다. 1. 세션을 시작하고 session_start ()를 사용하십시오. 2. 배열을 만들고 $ _session에 저장하십시오. 3. $ _session을 통해 배열을 검색하십시오. 4. 세션 데이터를 최적화하여 성능을 향상시킵니다.

Garbage Collection은 PHP 세션에 어떻게 효과가 있습니까?Garbage Collection은 PHP 세션에 어떻게 효과가 있습니까?Apr 27, 2025 am 12:19 AM

PHP 세션 쓰레기 수집은 만료 된 세션 데이터를 정리하기위한 확률 메커니즘을 통해 트리거됩니다. 1) 구성 파일에서 트리거 확률 및 세션 수명주기를 설정합니다. 2) CRON 작업을 사용하여 고재 응용 프로그램을 최적화 할 수 있습니다. 3) 데이터 손실을 피하기 위해 쓰레기 수집 빈도 및 성능의 균형을 맞춰야합니다.

PHP에서 세션 활동을 어떻게 추적 할 수 있습니까?PHP에서 세션 활동을 어떻게 추적 할 수 있습니까?Apr 27, 2025 am 12:10 AM

PHP의 사용자 세션 활동 추적은 세션 관리를 통해 구현됩니다. 1) Session_start ()를 사용하여 세션을 시작하십시오. 2) $ _session 배열을 통해 데이터를 저장하고 액세스하십시오. 3) 세션 _destroy ()를 호출하여 세션을 종료합니다. 세션 추적은 사용자 행동 분석, 보안 모니터링 및 성능 최적화에 사용됩니다.

데이터베이스를 사용하여 PHP 세션 데이터를 저장할 수있는 방법은 무엇입니까?데이터베이스를 사용하여 PHP 세션 데이터를 저장할 수있는 방법은 무엇입니까?Apr 27, 2025 am 12:02 AM

데이터베이스를 사용하여 PHP 세션 데이터를 저장하면 성능 및 확장 성을 향상시킬 수 있습니다. 1) 세션 데이터를 저장하기 위해 MySQL 구성 : php.ini 또는 php 코드에서 세션 프로세서를 설정하십시오. 2) 사용자 정의 세션 프로세서 구현 : 데이터베이스와 상호 작용하기 위해 열린, 닫기, 읽기, 쓰기 및 기타 기능을 정의합니다. 3) 최적화 및 모범 사례 : 인덱싱, 캐싱, 데이터 압축 및 분산 스토리지를 사용하여 성능을 향상시킵니다.

PHP 세션의 개념을 간단한 용어로 설명하십시오.PHP 세션의 개념을 간단한 용어로 설명하십시오.Apr 26, 2025 am 12:09 AM

phpsessionstrackuserdataacrossmultiplepagerequestsususingauniqueIdStoredInAcookie.here'showtomanagetheMeftically : 1) STARTASESSIONSTART_START () andSTAREDATAIN $ _SESSION.2) RegenerATERATESSESSIDIDAFTERLOGINWITHSESSION_RATERATERATES (True) TopreventSES

PHP 세션에 저장된 모든 값을 어떻게 반복합니까?PHP 세션에 저장된 모든 값을 어떻게 반복합니까?Apr 26, 2025 am 12:06 AM

PHP에서 세션 데이터를 통한 반복은 다음 단계를 통해 달성 할 수 있습니다. 1. Session_start ()를 사용하여 세션을 시작하십시오. 2. $ _session 배열의 모든 키 값 쌍을 통해 Foreach 루프를 통과합니다. 3. 복잡한 데이터 구조를 처리 할 때 is_array () 또는 is_object () 함수를 사용하고 print_r ()를 사용하여 자세한 정보를 출력하십시오. 4. Traversal을 최적화 할 때 페이징을 사용하여 한 번에 많은 양의 데이터를 처리하지 않도록 할 수 있습니다. 이를 통해 실제 프로젝트에서 PHP 세션 데이터를보다 효율적으로 관리하고 사용하는 데 도움이됩니다.

사용자 인증에 세션을 사용하는 방법을 설명하십시오.사용자 인증에 세션을 사용하는 방법을 설명하십시오.Apr 26, 2025 am 12:04 AM

이 세션은 서버 측 상태 관리 메커니즘을 통해 사용자 인증을 인식합니다. 1) 세션 생성 및 고유 ID의 세션 생성, 2) ID는 쿠키를 통해 전달됩니다. 3) ID를 통해 서버 저장 및 세션 데이터에 액세스합니다. 4) 사용자 인증 및 상태 관리가 실현되어 응용 프로그램 보안 및 사용자 경험이 향상됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구