Ale*_*dra 9 django httpresponse django-views
所以我正在使用django和文件上传,我需要一个javascript函数在文件上传后执行.我在views.py中有一个文件上传处理程序,如下所示:
def upload_file(request):
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
for f in request.FILES.getlist('fileAttachments'):
handle_uploaded_file(f)
return HttpJavascriptResponse('parent.Response_OK();')
else:
return HttpResponse("Failed to upload attachment.")
Run Code Online (Sandbox Code Playgroud)
我从http://djangosnippets.org/snippets/341/找到了一个django片段,并将HttpJavascriptResponse类放在我的views.py代码中.它看起来如下:
class HttpJavascriptResponse(HttpResponse):
def __init__(self,content):
HttpResponse.__init__(self,content,mimetype="text/javascript")
Run Code Online (Sandbox Code Playgroud)
但是,当我上传文件时,浏览器简单呈现"parent.Response_OK();" 在屏幕上,而不是实际执行JavaScript.Chrome会向我发出警告:"资源被解释为文档,但使用MIME类型text/javascript传输"
反正有没有得到views.py来执行脚本?
小智 9
更好的方法是将mime传递给HttpResponse对象.
return HttpResponse("parent.Response_OK()", mimetype="application/x-javascript")
Run Code Online (Sandbox Code Playgroud)
我相信这会奏效.
return HttpResponse("<script>parent.Response_OK();</script>")
Run Code Online (Sandbox Code Playgroud)
但是,您可能会考虑在这种情况下返回成功(200)状态代码,然后在父级中添加一些javascript附加到此子级的加载事件,并根据返回状态代码进行分支.这样,您就可以分离视图呈现代码和查看行为代码.
| 归档时间: |
|
| 查看次数: |
10379 次 |
| 最近记录: |