首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Axios将数据从Vue.js传递到PHP

使用Axios将数据从Vue.js传递到PHP
EN

Stack Overflow用户
提问于 2018-08-14 02:12:54
回答 2查看 12.9K关注 0票数 6

我正在尝试传输一些数据从一个图形用户界面在Vue.js做的PHP文件使用Axios。我尝试了GET和POST参数,但都不起作用:

我在此index.php表单中键入数据

index.php:

代码语言:javascript
复制
<!DOCTYPE HTML>
<HTML>
<head>
    <script src="https://unpkg.com/vue"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<BODY>
    <div id="container" class="container">
        <div>
            <label>First name:</label><br/>
            <input type="text" v-model='newPerson.firstName'>
        </div>
        <div>
            <label>Last name: </label><br/>
            <input type="text" v-model="newPerson.lastName">
        </div>
        <button v-on:click="sendIdentity()">Submit</button>       
    </div>    
    <script src="myjscode.js"></script>
</BODY>
</HTML>

myjscode.js:

当我按下按钮提交数据时,我在console.log(response.data)中看到了正确的输出

代码语言:javascript
复制
let vm = new Vue({
    el: "#container",
    data: {
        newPerson: {
            firstName: '',
            lastName: ''
        }
    },
    methods: {
        sendIdentity: function() {
            let personForm = vm.toFormData(vm.newPerson);
            axios.post('phpfile.php', personForm)
                .then( function(response) {
                    console.log(response.data)
                });
        },
        toFormData: function(obj) {
            let formData = new FormData();
            for(let key in obj) {
                formData.append(key, obj[key]);
            }
            return formData;
        }
    }
});

phpfile.php:

在这个文件上,我相当于在一个MySQL表中执行插入操作,但是它从未生效。我删除了MySQL代码,只保留下面的代码,我注意到当我运行此文件时总是收到消息Data not received

代码语言:javascript
复制
<?php
if( isset($_POST['firstName']) && isset($_POST['lastName'])){
   echo $_POST['firstName'];
   echo $_POST['lastName'];      
} else {  
   echo 'Data not received';
}
?>

我遗漏了什么?

更新:

当我像这样更改上面的myjscode.js时,我注意到:

代码语言:javascript
复制
axios.post('phpfile.php?todo=something', ...)

然后我将phpfile.php更改为

代码语言:javascript
复制
<?php

if( isset($_GET['todo']) ){
   echo $_GET['todo'];
} else {
   echo 'No todo';
}
?>

我得到No todo总是显示在PHP文件上。因此,在这种情况下,通过GET和POST发送数据都不起作用。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51828264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档