axios请求成功后怎么把数据返回到组件中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axios请求成功后怎么把数据返回到组件中相关的知识,希望对你有一定的参考价值。

参考技术A servlet中使用 request.setAttribute("myname","张三"); 将值保存在request里或者也可以用session。一下以request为例。
jsp页面取得值的方法
1:通过jsp获得值:
<% String name = request.getAttribute("myname"); %>
<input type="text" value="<%=name%>"/>
2:JSTL的c标签:(需要jstl相关开发环境)
<c:out value="$myname"/>
3:EL表达式:(需要el相关开发环境)
<input type="text" value="$myname"/>

Axios Post 200 响应后不返回数据

【中文标题】Axios Post 200 响应后不返回数据【英文标题】:Axios Post returning no data after 200 response 【发布时间】:2018-10-11 23:15:35 【问题描述】:

我正在玩 React(我是新手)并尝试向我的 Rails API(在 localhost atm 上)发出发布请求。我还编写了 post 函数来 console.log 我的响应,我始终收到 200 响应,确认对象已在我的 API 中成功创建。但是,我想通过我的http响应来确认是否传递了正确的参数,并且似乎没有正文。不确定我是否在我的发布请求中丢失了,或者我在发出发布请求后是否错误地更新了我的状态。

我的反应组件

import React,  Component  from 'react';
import axios from 'axios'
import update from 'immutability-helper'
import BusinessForm from './businessForm'

const API = 'http://localhost:3001/api/v1/businesses/'

class NewBusinesses extends Component    




 state = 
    businesses: [],
    editID: null


    
  check = () => 
    console.log(this.state.businesses)
  
  addNew = () => 
    axios.post(
      API,
        
          business:
           name: 'NEW BUSINESS',
            address: '',
            city: '',
            zip: '',
            wifi: '',
            phone: '',
            bathroom: ''
           
        
    )
    .then(response => 
      console.log(response)
        const businesses = update(this.state.businesses, 
          $splice: [[0,0,response.data]]
        )
        this.setState(businesses: businesses,
        editID: response.data.id)
        )
      .catch(error => console.log(error))
  

我onClick函数后的控制台(console.log(response))

data: "", status: 200, statusText: "OK", headers: …, config: …, …

config:adapter: ƒ, transformRequest: …, transformResponse: …, timeout: 0, xsrfCookieName: "XSRF-TOKEN", …
data:""
headers:
content-type: "text/html", cache-control: "no-cache"
request
:
XMLHttpRequest onreadystatechange: ƒ, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …
status:200
statusText:"OK"
__proto__:Object

【问题讨论】:

在你的 API 中的 rails 控制器是否在向其发送 post 请求后返回数据? @aaron.v 感谢您的快速帮助! 【参考方案1】:

没关系!这个问题出在 API 方面,不是因为我在 React 应用程序中所做的任何事情。我必须添加行

render json:@business

在我的 Rails API 中创建方法

【讨论】:

不确定这是否适用于您,但您也可能需要为发布请求执行此操作。 axios.defaults.headers.common['X-CSRF-Token'] = yourCSRFTokenHere; axios.defaults.headers.common.Accept = 'application/json'; ^^ 好喊布兰登。如果您将 respond_to 与 js 格式一起使用,请务必正确接受标头。没有它,Rails 将以默认的html 格式响应。

以上是关于axios请求成功后怎么把数据返回到组件中的主要内容,如果未能解决你的问题,请参考以下文章

成功调用 axios 后,Vue.js 组件不会发送到父级

okhttp 请求成功后怎么的返回数据

axios拦截器

请求成功200,但是没有返回数据。

ajax登录请求成功返回json数据跳转另一页面,在另一页面怎么取值?拜谢,不胜感激!

vue 跨域请求 怎么带上cookies