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 type="button" name="login" value="数据提交" @click="post"> </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 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
위 내용은 vue의 axios 구성 요소와 PHP 백엔드가 데이터를 교환하도록 하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다
