来自 Django 的 JsonResponse 没有将提到的键值对发送到 Reactjs
JsonResponse from Django not sending the mentioned key value pair to Reactjs
我正在尝试使用 React 从 Django API 获取响应,但是我传递的键值对在响应中不可见。
React 获取代码
handleClick(i) {
.
.
.
if (i != '=') {
.
.
}
else {
// CODE TO FETCH FROM DJANGO API
fetch('http://127.0.0.1:8000/solve/', {
method: 'POST',
body: {"expression":this.state.content}
}).then((response)=>{ console.log(response)})
}
}
Python代码
# Create your views here.
@api_view(["POST"])
def solveExpression(expression_json):
try:
math_expr = expression_json.data["expression"]
result = eval(math_expr)
data = {"result":result} #This is the data I want to send to reactjs
return JsonResponse(data)
except Exception as e:
return JsonResponse("Error:" + str(e), safe = False)
但不幸的是,我收到的回复中没有密钥 "result"。
请指正我犯错的地方,因为我是 reactjs 的新手。
fetch
默认 returns 与它所做的 AJAX 调用相关的所有元数据。
您的实际回复将在 body
属性 内作为 ReadableStream
:
尝试通过在响应中调用 .json()
来获取正文。
此外,fetch
需要字符串化的 body
作为请求负载。因此,您还必须根据您的请求 body
调用 JSON.stringify
在这里,试一试:
handleClick(i) {
...
if (i != '=') {
...
} else {
// CODE TO FETCH FROM DJANGO API
fetch('http://127.0.0.1:8000/solve/', {
method: 'POST',
body: JSON.stringify({
"expression": this.state.content
})
})
.then((response) => response.json())
.then(finalResponse => console.log(finalResponse))
}
}
我正在尝试使用 React 从 Django API 获取响应,但是我传递的键值对在响应中不可见。
React 获取代码
handleClick(i) {
.
.
.
if (i != '=') {
.
.
}
else {
// CODE TO FETCH FROM DJANGO API
fetch('http://127.0.0.1:8000/solve/', {
method: 'POST',
body: {"expression":this.state.content}
}).then((response)=>{ console.log(response)})
}
}
Python代码
# Create your views here.
@api_view(["POST"])
def solveExpression(expression_json):
try:
math_expr = expression_json.data["expression"]
result = eval(math_expr)
data = {"result":result} #This is the data I want to send to reactjs
return JsonResponse(data)
except Exception as e:
return JsonResponse("Error:" + str(e), safe = False)
但不幸的是,我收到的回复中没有密钥 "result"。
请指正我犯错的地方,因为我是 reactjs 的新手。
fetch
默认 returns 与它所做的 AJAX 调用相关的所有元数据。
您的实际回复将在 body
属性 内作为 ReadableStream
:
尝试通过在响应中调用 .json()
来获取正文。
此外,fetch
需要字符串化的 body
作为请求负载。因此,您还必须根据您的请求 body
JSON.stringify
在这里,试一试:
handleClick(i) {
...
if (i != '=') {
...
} else {
// CODE TO FETCH FROM DJANGO API
fetch('http://127.0.0.1:8000/solve/', {
method: 'POST',
body: JSON.stringify({
"expression": this.state.content
})
})
.then((response) => response.json())
.then(finalResponse => console.log(finalResponse))
}
}