1
무엇이 원인인지 모르겠지만 nuxtjs를 사용하고 username
및 password
을 json 형식의 Go 서버에 보내려고합니다. 이것은 내 VUE 코드 :vuejs FormData가 json을 보내지 않습니다.
<template>
<div class="container">
<h1>Login</h1>
<div>
<label for="username" >Username</label>
<input class="input-block" type="text" v-model="username">
</div>
<div>
<label for="password" >Password</label>
<input class="input-block" type="password" v-model="password">
</div>
<div>
<button v-on:click="login">Login</button>
</div>
</div>
</template>
<script>
import Vue from 'vue'
import VueResource from 'vue-resource'
Vue.use(VueResource)
var loginURL = 'http://localhost:5000/login'
export default {
data() {
return {
username: [],
password: []
}
},
methods: {
login: function() {
NProgress.start()
var formData = new FormData()
formData.append('username', this.username)
formData.append('password', this.password)
this.$http.post(loginURL, formData, {emulateJSON: true}).then(response => {
console.log(response)
}, response => {
console.log(response)
})
}
}
}
</script>
나는 또한 {emulateJSON: true}
을 제거하기 위해 시도했지만 결과는 동일합니다. 내가 이동 꽤 확신
body string: -----------------------------10632500131211292840295750524
Content-Disposition: form-data; name="username"
MYUSERNAME
-----------------------------10632500131211292840295750524
Content-Disposition: form-data; name="password"
MYPASSWORD
-----------------------------10632500131211292840295750524--
:
func LoginPOST(w http.ResponseWriter, r *http.Request) {
var loginForm struct {
Username string `json:"username"`
Password string `json:"password"`
}
body, err := ioutil.ReadAll(r.Body)
if err != nil {
// return 422
return
}
fmt.Println("body string:", string(body))
err = json.Unmarshal(body, &loginForm)
if err != nil {
fmt.Println(err)
// return 422
return
}
...
}
json.Unmarshal
오류가 인쇄됩니다 :
는 서버 이동 코드는 다음과 같습니다 invalid character '-' in numeric literal
을하고 r.Body이기 때문이다 코드는 정확하지만 vue-resource이 FormData를 그런 방식으로 보내는 이유를 알 수 없습니다. 누군가가 요청 브라우저에서 regualr formdata 개체가 JSON 내가 아는 한 인코딩되지 않습니다
이 덕분에 많은 도움이되었습니다. 나는 FormData가 기본적으로 json을 사용한다는 두 곳의 다른 곳을 보았다고 맹세했습니다. p – fisker
당신을 도울 수있어서 기쁩니다. 나는이 상황을 아주 잘 알고있다.) –