如何从JSON响应重定向?

时间:2014-03-08 11:38:55

标签: javascript python json redirect flask

所以我尝试使用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问题。谢谢。

2 个答案:

答案 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的值设置为此值。