如何打印来自发布请求的响应

Posted

技术标签:

【中文标题】如何打印来自发布请求的响应【英文标题】:How to print the response from a post request 【发布时间】:2020-09-03 17:58:46 【问题描述】:

我正在尝试为与我输入的单词匹配的日托创建一个简单的搜索栏,我正在向 api 发送一个发布请求,然后我会返回与我输入的内容匹配的所有日托,这是我的代码:

<template>
  <div class="body">
    <div>
    <h1 class="mt-3">Busca una guarderia</h1>
    <div class=" mx-1 mb-5">
    <b-form @submit.prevent="buscarGuarderia">    
    <b-form-group id="input-group-1" label-for="input-1">
          <b-form-input
            id="input-1"  
            v-model="cadena"
            required          
          >          
          </b-form-input>
        </b-form-group>
    <div class="mt-2">
    </div>
    <b-button block pill type="submit" variant="success">
        Buscar
    </b-button>
    </b-form>
  </div>
  </div>
  </div>
</template>

<script>
import  mapState  from 'vuex';
export default 
  name: "SearchDaycare",
  data() 
    return 
    currentUser: ,
    cadena: ""
    
  ,
  computed: 
    ...mapState(["daycares"]),
  ,
  methods:  
      getDaycare()
      this.$store.dispatch("getDogDayCares", 
          user: this.currentUser.user
          );
    ,
      buscarGuarderia()       
      this.$store.dispatch("buscarGuarderia", [
        cadena: this.cadena,
      , "clients"])
      .then();
    
  ,
    created() 
        if (localStorage.getItem("user")) 
        try 
            this.currentUser = JSON.parse(localStorage.getItem("user"));
         catch (e) 
            localStorage.removeItem("user");
            
        
    

;
</script>
<style lang="scss" scoped>
h1 
  color: #40db9a;

.body 
  margin: 0;
  height: auto;
  display: grid;
  place-items: center;
  overflow: hidden;


.cards 
  display: flex;

.card 
  color: #063869;
  background-color: #eef6e1;
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 3px 3px 12px 2px rgba(black, 0.6);
  transition: 0.2s;

.card:not(:first-child) 
  margin-left: -2rem;

.card:not(:last-child):hover,
.card:not(:last-child):focus-within 
  transform: translateY(-1rem);
  ~ .card 
    transform: translateX(2rem);
  

</style>

这是 buscarGuarderia 函数,它是将请求发送到 API 的函数

buscarGuarderia( commit , [credentials, userClass]) 
  return axios.post("/api/" + userClass + "/searchdaycarebyname", credentials).then();

它工作正常,我发送发布请求并从 API 获得响应,我想要做的是打印我得到的一个或多个响应,我在执行此操作时遇到问题,任何帮助将不胜感激 @987654321 @

【问题讨论】:

【参考方案1】:

你可以在 vuex 中创建一个状态来存储响应,一个突变来更新状态。在buscarGuarderia 操作中,您可以调用该突变来更新存储状态。

最后,在要显示响应的 vue 组件中,只需从 store 中加载即可。

【讨论】:

【参考方案2】:

then里面可以填写成功响应:

buscarGuarderia( commit , [credentials, userClass]) 
  return axios.post("/api/" + userClass + "/searchdaycarebyname", credentials)
              .then(function(response)
                  console.log(response.data)
               );

【讨论】:

我措辞不正确,我不想在控制台中打印响应,我想在组件中显示响应,所以当我使用搜索栏时,它会向我显示数据,任何机会你可以帮我解决这个问题,我是 vue 新手,实现这一点非常困难,顺便感谢您的第一反应

以上是关于如何打印来自发布请求的响应的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏来自 dbus-send(打印回复)的响应?

在 Jest 中测试失败时如何打印请求和响应?

如何修复来自 Axios 的随机 http 请求(404 响应)

RESTDataSource - 如何知道响应来自获取请求还是缓存

如何检查网络响应来自 Alamofire 请求中的缓存或服务器?

如何停止主 ui 线程,直到我得到来自 http 请求的响应