post方法的Vue.js主体总是空的

时间:2017-02-18 17:39:59

标签: javascript spring vue.js

我想将POST方法发送到localhost body部分内容中的一些内容。我vue文件中的代码是:

methods: {
      login(){
          var data = {
              username: 'admin',
              password: 'admin'
          }
        this.$http.post("http://localhost:8081/login", data)
        .then(response => {
          console.log(response)
        })
      }
    }

我使用Spring-boot作为服务器,并在attemptAuthentication类的实现中使用AbstractAuthenticationProcessingFilter方法中的断点。检查body我使用:

String myBody= httpServletRequest.getReader().lines().collect(Collectors.joining(System.lineSeparator()));

但是这个String总是空的(断点有效)。我尝试将一些值手动设置为post方法,如:

this.$http.post("http://localhost:8081/login", "exampleData")

但价值仍为空。

当我从Postman发送相同的方法时 - 它运作良好 - myBody包含正确的值。

我的代码出了什么问题?

@Update

1)对于raw和json,我配置了Postman:

enter image description here 在我的java类中是:

myBody = {"username":"admin","password":"admin"}
myContentType = application/json

2)表格: enter image description here

java类看起来像:

myBody = 
------WebKitFormBoundarykeEtHWmW4BBv2y0t
Content-Disposition: form-data; name="username"

admin
------WebKitFormBoundarykeEtHWmW4BBv2y0t
Content-Disposition: form-data; name="password"

admin
------WebKitFormBoundarykeEtHWmW4BBv2y0t--

@Update

我为post方法添加了标题:

methods: {
      login(){
        this.$http.post("http://localhost:8081/login", "exampleData", {
          headers: {
            'content-type' : 'application/json'
          }
        })
        .then(response => {
          console.log(response)
        })
      }
    }

但在java类myBody中为空,content-typenull。控制台(在浏览中)没有错误

1 个答案:

答案 0 :(得分:0)

您应该检查您的服务器是否收到请求bodyform

像这样:

enter image description here

检查brower params如下:

enter image description here