我想在POST请求中发布数据.我有一个登录表单,看起来像这样
render(){ return (); }
我在handleLoginButtonClick中发出POST请求
handleLoginButtonClick() { let token; var settings = { "async": true, "crossDomain": true, "url": "https://trigger-backend.appspot.com/auth/login/", "method": "POST", "credentials": 'include', "headers": { "content-type": "application/x-www-form-urlencoded", }, "data": { "password": JSON.stringify(document.getElementById("password").value), "username": JSON.stringify(document.getElementById("username").value) }, success: function( data, textStatus, jQxhr ){ // alert("success"); }, } $.ajax(settings).done((response) => { token = JSON.stringify(response.auth_token) this.context.router.push('/app') });
所以我目前正在包含这样的数据
"data": { "password": JSON.stringify(document.getElementById("password").value), "username": JSON.stringify(document.getElementById("username").value) }
但是api给了我400这样的错误
但与此同时,如果我传递这样的数据,那么它的工作原理
"data": { "password": "apurv", "username": "Apurv" },
这里有什么问题.两者都应该是一样的吧?
你应该删除JSON.stringify
这里的调用,因为它们会在值周围添加不必要的双引号,使它们无效:
"data": { "password": document.getElementById("password").value, "username": document.getElementById("username").value }
因此,而不是将值apurv
作为密码发送"apurv"
,而不是正确的密码.