【发布时间】:2021-02-14 13:42:04
【问题描述】:
目前我有一个搜索页面,它接受输入,然后使用它来搜索 api 以获取数据。我像这样将页面的输入发布到服务器
fetch('/search', {
method: 'POST',
headers: new Headers({'Content-Type': 'application/json'}),
body: JSON.stringify({data: input,token: token,})
})
.then(function (data) {
console.log('Request success: ', data);
})
.catch(function (error) {
console.log('Request failure: ', error);
});
服务器上的输入是这样设置的
req = request.get_json()
input = req['data']
然后使用上面的input 搜索并返回结果。我需要使用server side result 来确定将用户重定向到哪里。我会使用window.location.href = '/search/bad' 之类的东西进行重定向,但我不知道搜索是否好,直到下面的result.is_success()/error()
if result.is_success():
print('search was success ',result.body)
return redirect(url_for('search_bad'))
elif result.is_error():
print('search was failure ',result.errors)
return redirect(url_for('search_bad'))
我在终端看到的是
search was failure ....
127.0.0.1 - - [01/Nov/2020 14:33:54] "POST /search HTTP/1.1" 302 -
127.0.0.1 - - [01/Nov/2020 14:33:54] "GET /search/bad HTTP/1.1" 200 -
我考虑过简单地使用表单,但从上面的获取帖子中,搜索中也使用了令牌。我不明白为什么重定向不起作用,它只是坐在搜索页面上。有一个 200 响应 /search/bad HTTP/1.1" 200 但它不会转到/重定向到错误的搜索 url。关于如何使重定向起作用的任何想法?
【问题讨论】:
标签: javascript python flask redirect fetch