在我的 django 应用程序中,我既要渲染模板又要调用浏览器的另存为。我已经使用 ajax 实现了这一点——我有一个呈现模板的视图。在该模板中有一些 javascript,它使用 ajax 调用另一个视图。该视图返回应触发另存为的响应。但是当从 ajax 调用的视图返回时,它不会。如果我通过将 ajax 调用生成的 URL 剪切并粘贴到浏览器的地址栏中来调用相同的视图,则会调用另存为,但从 ajax 调用时则不会。我已经使用 pdb 从 python 端验证了视图已被调用并且正在返回正确的响应。我已经从浏览器端验证它收到了响应。
这是我返回的响应(从浏览器的调试窗口剪切和粘贴):
HTTP/1.1 200 OK
Date: Tue, 26 Mar 2013 13:07:47 GMT
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/1.0.0f DAV/2 mod_wsgi/3.3 Python/2.6.7
Vary: Cookie
Content-Disposition: Attachment; filename=SF69.xml
Keep-Alive: timeout=5, max=98
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/xml
知道为什么会发生这种情况吗?为什么从 ajax 与“正常”方式返回时,这种行为会有所不同?