首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Axios AJAX调用空参数

Axios AJAX调用空参数
EN

Stack Overflow用户
提问于 2018-10-07 18:29:34
回答 1查看 855关注 0票数 2

我使用Vuejs为我的项目创建我的前端。

在创建一个组件('TimeCapsy.vue')时,我对后端进行了如下AJAX调用:

代码语言:javascript
复制
created: function () {
        if (verify.verify_login()) {
          let token = this.$cookies.get('jwt_us_cas');
          let params = {'jwt': token};
          console.log(params);
          axios({
            method: 'post',
            url: dev.HOST+'getuserinfoobject',
            params: queryString.stringify(params)
          })
            .then(response => {
              console.log(response.data)
            })
        }
      }

如您所见,我使用

代码语言:javascript
复制
this.$cookies.get('jwt_us_cas');

要获得json令牌,我在登录时在客户端设置了该令牌。

我使用queryString库为我的请求设定参数。

我也在没有queryString.stringify(params)调用的情况下尝试了它,但是我得到了相同的错误,例如,参数仍然变为null。

当我查看控制台日志时,我检查了params变量,得到了以下输出:

{jwt:“我的令牌来了”}

所以我可以看到,它从cookie中得到了正确的值。

但是,当我从后端(PHP)检查答案时,我会得到以下错误:

代码语言:javascript
复制
Undefined index: jwt in <b>D:\casb\public\index.php</b> on line <b>52</b>

当然,我知道这意味着,jwt是空的,但是我不明白为什么。

就像我说过的,在我打电话之前,我会检查params,它会显示令牌。

我以Postman和令牌作为jwt参数检查了端点,它返回了一个带有正确答案的成功调用。

正确的答案基本上只是一个嵌套的对象,其中包含了一些信息。

我的PHP端点也非常基本:

代码语言:javascript
复制
Router::add('/getuserinfoobject', function () {
    $response['response'] = User::getUserInfoObject($_POST['jwt']);
    echo json_encode($response);
}, 'post');

所以我猜就在我调用之前或者在我的调用中,它取消了我的参数。但是我不明白我是怎么做到的,因为我提出了很多要求,而且从来没有遇到过这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-07 18:49:43

从axios文档

params是与请求一起发送的URL参数。

这意味着,您应该使用PHP获得值。

或者$_REQUEST (同时存储$_GET$_POST )。也是$_COOKIE)。

另一方面,您可以使用data密钥,如docs所述。

data是作为请求体发送的数据。 仅适用于请求方法PUT__ POST__和PATCH

所以这个值在$_POST中是可用的。

代码语言:javascript
复制
axios({
  method: 'post',
  url: dev.HOST+'getuserinfoobject',
  data: {
     jwt: token
  }
})
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52691598

复制
相关文章

相似问题

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