在 vuejs 中发送 axios 发布请求

Posted

技术标签:

【中文标题】在 vuejs 中发送 axios 发布请求【英文标题】:send axios post request in vuejs 【发布时间】:2020-05-12 03:12:34 【问题描述】:

我想在 vuejs 中从我的模板发送 axios 发布请求,如下代码:

<script>
export default 
  data() 
    return 
      body:
       name:'ssdsdsd',
       time:'232342',
      ,
    header:headers: 
      'Content-Type': 'application/x-www-form-urlencoded',
    ,
      name:null,
      r:null,
    
  ,
  methods: 
    post:function()
      this.$http.post('http://127.0.0.1/saver.php',this.body,this.header).then(r => 
       this.r=r;
       // eslint-disable-next-line no-console
       console.log(typeof this.body)
      ).catch(err => 
   // eslint-disable-next-line no-console
   console.log(err.response.data)
);
    
  ,

</script>

我使用 Requst 方法在 php 代码中得到 this.name(名称)

这是我的 php 代码:

<?php
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json');
    echo($_REQUEST['name']);

?>

但是 php 返回了这个响应:

<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: name in C:\wamp64\www\saver.php on line <i>4</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0003</td><td bgcolor='#eeeeec' align='right'>401952</td><td bgcolor='#eeeeec'>main(  )</td><td title='C:\wamp64\www\saver.php' bgcolor='#eeeeec'>...\saver.php<b>:</b>0</td></tr>
</table></font>

【问题讨论】:

catch() 时是否有错误? @Evan 没有错误:/ ? 当您发布请求时页面会刷新吗?如果是的话,你能告诉我们模板代码吗 @Evan 我想,问题出在标题上吗?不是吗? @Evan 不刷新。 【参考方案1】:

更新。

你会得到Array ( ["name":"asd"] =&gt; ),但你应该得到这个:

Array ( ["name" => "asd"])

更新。 2

您可以尝试从 axios 的标头中删除 'Content-type': 'application/x-www-form-urlencoded', 吗?

【讨论】:

评论不用于扩展讨论;这个对话是moved to chat。

以上是关于在 vuejs 中发送 axios 发布请求的主要内容,如果未能解决你的问题,请参考以下文章

vuejs之使用axios发送http请求

Vuejs Axios POST 请求从 Laravel 后端获取 HTTP422 错误

vue js中的axios将请求作为字符串而不是对象发送

Vue Js - 文件输入更改后发送axios请求

如何在 vuejs 中使用 axios 从数组中发布多个请求?

使用 axios vuejs 和 laravel 验证表单