python-3.x - 瓶贴不返回响应
问题描述
我使用 Bottle 作为后端,使用 Angular2 作为前端。使用 POST 请求时,我想返回响应,但由于某种原因,它不返回响应
Python代码:
@app.post("/api/post/new_post")
def hp_new_post():
pd = json.loads(request.body.read().decode("utf-8"))
try:
cl.eduo.posts.insert_one(
{
"h": pd['h'],
"d": pd['d'],
"t": pd['t']
}
)
except Exception:
response.status = 500
response.content_type = 'application/json'
response.status = 200
return response
角代码:
var result = from(
fetch(
this.baseurl,
{
body: JSON.stringify(
{
"h": h,
"d": des,
"t": Date.now()
}),
headers: {
'Content-Type': 'application/json',
},
method: 'POST',
mode: 'no-cors'
}
)
).subscribe(
{
next(data) {
console.log(data);
},
error(msg) {
console.log(msg);
}
}
)
当我 console.log 来自请求的数据时,我得到:
body: null
bodyUsed: false
headers: Headers { }
ok: false
redirected: false
status: 0
statusText: ""
type: "opaque"
url: ""
解决方案
我建议你使用HttpClient
. 为此, import HttpClientModule
,您的代码可能是:
constructor(private httpClient: HttpClient) {}
load() {
this.http.post(this.baseurl, {
"h": h,
"d": des,
"t": Date.now()
}, {
observe: 'response',
headers: new HttpHeaders({
'Content-Type': 'application/json'
}
}).subscribe(response => {
// do stuff with body
// response.body
// this will output headers received
const keys = response.headers.keys();
const headers = keys.map(key =>
`${key}: ${response.headers.get(key)}`);
console.table(headers);
})
}
如果您不需要response
详细信息,但只body
收到:
this.http.post<MyData>(this.baseurl, {
"h": h,
"d": des,
"t": Date.now()
}).subscribe(data => {
// do stuff with data of type MyData
data.name...
});
有关Angular 官方文档的更多详细信息。
推荐阅读
- javascript - 如何将 Google 字体添加到 VueJS 组件?
- install4j - 如何通过 install4j 强制使用捆绑的 jre?
- python - 如何在 Pandas 中遍历 DataFrame 中的行并将其转换为列表?
- c# - 计算 Minecraft 爆炸
- angular - Angular 形式的 Observables
- jquery - $(...).DataTable(...).fnAddData 不是函数
- javascript - 每当我导航到另一条路线并返回时,Firestore 数据就会重复
- azure-iot-edge - 无法拥有共享项目
- sql - 如何在 sql server 中聚合“连续”记录?
- ionic-framework - 离子 Youtube 播放器自动播放无法在设备上运行