我很困惑我在代码中做错了什么。GET调用得到了解决,但是当我试图对同一个服务器进行POST调用时,我得到了一个错误。我的POST端点在Postman中工作得很好。
api连接.js
function get(data){
return axios.get("http://localhost:8080/api/questions",
{
params:data.payload
}, {
headers: {
'accept': 'application/json',
}
})
}
function post(data){
console.log(data.payload) //my payload is received here
return axios.post("http://localhost:8080/api/answer", {
params:data.payload
}, {
headers: {
'accept': 'application/json',
}
}
)
}
export { get, post }
这是我在控制台中遇到的错误
下面是我如何做出React
索引.js
GET(正常接收响应)
import { get, post } from "apiConnection.js"
...
componentDidMount(){
const data = {
payload: {
linkId: getSlug()
}
}
get(data).then((result) => {
this.setState({reportId: result.data.report.id});
})
}
POST(引发错误)
vote(userVote){
const data = {
payload: {
reportId: this.state.reportId,
}
}
post(data).then((result)=>{
this.state.questions[this.state.currentQuestion].vote = userVote
});
}
2条答案
按热度按时间lx0bsm1f1#
我已经找到了这个问题的罪魁祸首,但如果有人能添加更多关于它的信息,它可能会对其他人有帮助。
在我的问题中,为了简洁起见,我将请求URL从导入常量改为硬编码链接。
在我的代码中,我有一个用于GET和POST的变量
我像这样导入端点变量
api端点.js
由于某种未知的原因,即使我在定义
data.ep
时没有打错,EP_ANSWER
也会抛出错误(data.ep
有EP_ANSWER
,我检查了一百万次)解决方案是只将
EP_ANSWER
更改为EP_ANS
,一切都按预期运行。不知道为什么会这样。它可能是某个全局变量或保留字。
t5zmwmid2#
只是偶然发现了这一点,并注意到@安藤的回复。
所以,我知道我首先尝试了一个硬编码的URL,它工作。
然后,我成功地运行了url.toString(),它成功了。
不知道为什么,但Javascript似乎对待对象字符串不同于对待真正的字符串。