찾다
백엔드 개발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怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

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

php如何使用Yii3框架?php如何使用Yii3框架?May 31, 2023 pm 10:42 PM

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

如何使用PHP框架Yii开发一个高可用的云备份系统如何使用PHP框架Yii开发一个高可用的云备份系统Jun 27, 2023 am 09:04 AM

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

Yii2 vs Phalcon:哪个框架更适合开发显卡渲染应用?Yii2 vs Phalcon:哪个框架更适合开发显卡渲染应用?Jun 19, 2023 am 08:09 AM

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

Yii框架中的数据查询:高效地访问数据Yii框架中的数据查询:高效地访问数据Jun 21, 2023 am 11:22 AM

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

Symfony vs Yii2:哪个框架更适合开发大型Web应用?Symfony vs Yii2:哪个框架更适合开发大型Web应用?Jun 19, 2023 am 10:57 AM

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

yii如何将对象转化为数组或直接输出为json格式yii如何将对象转化为数组或直接输出为json格式Jan 08, 2021 am 10:13 AM

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

Yii2编程指南:运行Cron服务的方法Yii2编程指南:运行Cron服务的方法Sep 01, 2023 pm 11:21 PM

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

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 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

SublimeText3 영어 버전

SublimeText3 영어 버전

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

DVWA

DVWA

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