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

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

随着互联网的不断发展,Web应用程序开发的需求也越来越高。对于开发人员而言,开发应用程序需要一个稳定、高效、强大的框架,这样可以提高开发效率。Yii是一款领先的高性能PHP框架,它提供了丰富的特性和良好的性能。Yii3是Yii框架的下一代版本,它在Yii2的基础上进一步优化了性能和代码质量。在这篇文章中,我们将介绍如何使用Yii3框架来开发PHP应用程序。

随着云计算技术的不断发展,数据的备份已经成为了每个企业必须要做的事情。在这样的背景下,开发一款高可用的云备份系统尤为重要。而PHP框架Yii是一款功能强大的框架,可以帮助开发者快速构建高性能的Web应用程序。下面将介绍如何使用Yii框架开发一款高可用的云备份系统。设计数据库模型在Yii框架中,数据库模型是非常重要的一部分。因为数据备份系统需要用到很多的表和关

在当前信息时代,大数据、人工智能、云计算等技术已经成为了各大企业关注的热点。在这些技术中,显卡渲染技术作为一种高性能图形处理技术,受到了越来越多的关注。显卡渲染技术被广泛应用于游戏开发、影视特效、工程建模等领域。而对于开发者来说,选择一个适合自己项目的框架,是一个非常重要的决策。在当前的语言中,PHP是一种颇具活力的语言,一些优秀的PHP框架如Yii2、Ph

Yii框架是一个开源的PHPWeb应用程序框架,提供了众多的工具和组件,简化了Web应用程序开发的流程,其中数据查询是其中一个重要的组件之一。在Yii框架中,我们可以使用类似SQL的语法来访问数据库,从而高效地查询和操作数据。Yii框架的查询构建器主要包括以下几种类型:ActiveRecord查询、QueryBuilder查询、命令查询和原始SQL查询

随着Web应用需求的不断增长,开发者们在选择开发框架方面也越来越有选择的余地。Symfony和Yii2是两个备受欢迎的PHP框架,它们都具有强大的功能和性能,但在面对需要开发大型Web应用时,哪个框架更适合呢?接下来我们将对Symphony和Yii2进行比较分析,以帮助你更好地进行选择。基本概述Symphony是一个由PHP编写的开源Web应用框架,它是建立

yii框架:本文为大家介绍了yii将对象转化为数组或直接输出为json格式的方法,具有一定的参考价值,希望能够帮助到大家。

如果您问“Yii是什么?”查看我之前的教程:Yii框架简介,其中回顾了Yii的优点,并概述了2014年10月发布的Yii2.0的新增功能。嗯>在这个使用Yii2编程系列中,我将指导读者使用Yii2PHP框架。在今天的教程中,我将与您分享如何利用Yii的控制台功能来运行cron作业。过去,我在cron作业中使用了wget—可通过Web访问的URL来运行我的后台任务。这引发了安全问题并存在一些性能问题。虽然我在我们的启动系列安全性专题中讨论了一些减轻风险的方法,但我曾希望过渡到控制台驱动的命令


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

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

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

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
