Javascript 在Vue JS中使用Axios将json数据发布到API时出现问题
我正在尝试创建一个Axios请求,在这里我将发布json数据。数据的格式将是Javascript 在Vue JS中使用Axios将json数据发布到API时出现问题,javascript,json,vuejs2,axios,Javascript,Json,Vuejs2,Axios,我正在尝试创建一个Axios请求,在这里我将发布json数据。数据的格式将是 {"qBody":"aaa","qAnswer":"bbb","qOptions":[],"qType":"GAP","qClass":6,"qSubject":1,"qChapter":1,"qCreatori
{"qBody":"aaa","qAnswer":"bbb","qOptions":[],"qType":"GAP","qClass":6,"qSubject":1,"qChapter":1,"qCreatorid":1,"qCreatorrole":"admin"}
但它发布为
{"data":{"qBody":"aaa","qAnswer":"bbb","qOptions":[],"qType":"GAP","qClass":6,"qSubject":1,"qChapter":1,"qCreatorid":1,"qCreatorrole":"admin"}}
以下是我的代码片段:
var data = {
"qBody" : question,
"qAnswer" : trueFalseAnswer,
"qOptions" : qOptions,
"qType" : questionCategory,
"qClass" : className,
"qSubject" : subjectName,
"qChapter" : chapterName,
"qCreatorid" : qCreatorid,
"qCreatorrole" : qCreatorrole
};
const newData = JSON.stringify(data)
this.$axios.post("http://128.199.192.87:8081/api/v1/questions/add",{
newData
},{
'Content-Type': "application/json"
}).then((response)=>{
console.log(response)
})
如何使格式正确?提前感谢您所做的
console.log()
-ing不是您要发送的内容。这是从服务器返回的响应。如果要记录发送的内容,请使用:
console.log(newData);
。。。就在发出POST请求之前
最有可能的情况是,您不需要将请求字符串化
您在控制台中看到的是服务器响应。根据他们文档中的,服务器的响应数据被放置在响应对象的.data
属性中
显然,服务器会发回相同的数据。对于大多数服务器,这意味着没有发生错误
简而言之,您没有将数据包装为
{data:…}
发送。如果是,您将返回:{data:{data:…}
您是什么console.log()
-ing不是您要发送的内容。这是从服务器返回的响应。如果要记录发送的内容,请使用:
console.log(newData);
。。。就在发出POST请求之前
最有可能的情况是,您不需要将请求字符串化
您在控制台中看到的是服务器响应。根据他们文档中的,服务器的响应数据被放置在响应对象的.data
属性中
显然,服务器会发回相同的数据。对于大多数服务器,这意味着没有发生错误
简而言之,您没有将数据包装为
{data:…}
发送。如果您是,您将返回:{data:{data:{data:…}}
您读过文档了吗?当您说“它发布为…”时,您的意思是:“这是我在浏览器控制台中看到的”?不是。它来自浏览器的“开发人员网络选项卡中的请求负载”选项。您可以使用codesandbox.io创建一个可运行的吗(或类似的服务),确保它复制所描述的行为?你说的几乎是不可能的。你读过文档吗?当你说“它发布为…”时,你的意思是:“这就是我在浏览器控制台中看到的”?否。它来自浏览器的“开发人员网络选项卡”选项中的“请求有效负载”。请使用codesandbox.io(或类似服务)创建一个可运行的,确保它复制了所描述的行为?您所说的几乎是不可能的。我已在浏览器的“开发者网络”选项卡选项中发布了上述来自请求负载的json。我尝试跳过字符串化数据。我已在浏览器的“开发者网络”选项卡选项中发布了上述来自请求负载的json。我尝试跳过将数据字符串化。