无法在vue.js中的axios中发布

时间:2019-02-27 17:43:13

标签: javascript axios

我尝试过此代码

axios
    .post("http://localhost:3010/user/login", {
      headers: {
        "Content-type": "application/json"
      },
      body: JSON.stringify({ username: "username", password: "password" })
    })
    .then(response => {
      this.resp = response;
    })
    .catch(e => {
      console.error(e);
    });

但是响应它无效登录但可以在邮递员中工作

enter image description here

这有什么问题?

在这样的网络响应中

enter image description here

2 个答案:

答案 0 :(得分:1)

使用post发送对象时,该对象将转换为字符串,因此有效发送给API端点的是:

JSON.stringify(JSON.stringify({ username: "username", password: "password" }))

没有必要

此外,您不发送正文作为标题的一部分。

https://github.com/axios/axios#request-method-aliases

  

axios.post(URL [,data [,config]])

在您的情况下,这意味着您发送了三个参数,分别是url,数据和选项。由于您发送的唯一标头是json数据,而axios可以为您处理,因此不需要这种情况下的选项,因此您可以仅使用前两个参数

axios
    .post(
      "http://localhost:3010/user/login",
      {
         username: "username",
         password: "password" 
      }
    )
    .then(response => {
      this.resp = response;
    })
    .catch(e => {
      console.error(e);
    });

答案 1 :(得分:0)

更改标题 来自

@Override
public ElasticsearchCustomConversions elasticsearchCustomConversions() {
    return new ElasticsearchCustomConversions(Arrays.asList(
        Smoking.SmokingToStringConverter.INSTANCE,
        Smoking.StringToSmokingConverter.INSTANCE)
    );
}

收件人

@Field(type = FieldType.Keyword)
private Smoking smoking;

现在尝试,它对我有用