所以我尝试使用Flask和Javascript上传器(Dropzone)上传文件并在上传完成后重定向。文件上传得很好,但使用烧瓶中的传统重定向:
return (redirect ("http://somesite.com"))
什么都不做,页面不会改变。我认为这是因为:发送文件的请求标头设置为Accept:"application/json"
,响应标头正在<"text/html; charset=utf-8"
中发送如何返回json响应,然后从中重定向?刚做
return (redirect (jsonify("http://somesite.com")))
给出错误:
ValueError: dictionary update sequence element #0 has length 1; 2 is required
我知道浏览器无论如何都不会从Json头重定向。如何发送网址重定向到Flask回到我的JS app clientide并从那里重定向? 我已经用普通的HTML表单对它进行了测试,以提交文件并且它运行良好,所以我很确定它是JSON问题。谢谢。
答案 0 :(得分:1)
您可以为响应设置mimetype:
response = redirect('http://somesite.com')
response.mimetype = 'application/json'
return response
或者:
return make_response(redirect('http://example.com'), mimetype='application/json')
答案 1 :(得分:0)
如果您正在使用AJAX调用,则需要在JSON响应中返回目标位置,然后在JS代码中将window.location.href的值设置为此值。