Grails文件上传json响应
我试图在grails中上传一个文件,然后处理上传返回的json响应,但没有太大成功。我的观点是:Grails文件上传json响应,json,grails,file-upload,Json,Grails,File Upload,我试图在grails中上传一个文件,然后处理上传返回的json响应,但没有太大成功。我的观点是: <script type="text/javascript"> function addData(e) { alert('adding data'); } </script> <g:form name="upload-form" url="[controller: 'dataset', action:'handleUpload']" enctype="mu
<script type="text/javascript">
function addData(e) {
alert('adding data');
}
</script>
<g:form name="upload-form" url="[controller: 'dataset', action:'handleUpload']"
enctype="multipart/form-data" target="hidden-upload-frame">
File: <input type="file" name="myFile" />
<button type="submit">Upload</button>
</g:form>
<iframe id="hidden-upload-frame" name="hidden-upload-frame" style="display: none" onload="addData"></iframe>
}
但是当我提交表单时,浏览器只是提示我下载JSON响应。我也尝试过使用formRemote,但request.getFile似乎对formRemote无效
我需要做什么才能让
addData
方法通过json响应被调用?如果您想在handleUpload操作中返回json,您的返回(最后一行)必须是:
您还需要以下导入:
import grails.converters.JSON
当写入iframe时,对于某些浏览器来说,似乎需要将其写入文本或html,而不是json。Ernesto,我改变了这一点,它确实正确地将json呈现到iframe中,但我似乎仍然无法使addData javascript方法的回调在firefox上也能正常工作,因为它仍然尝试下载json文件,不渲染到帧(但在chrome上渲染到帧)
render result as JSON
import grails.converters.JSON