Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails文件上传json响应_Json_Grails_File Upload - Fatal编程技术网

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

我试图在grails中上传一个文件,然后处理上传返回的json响应,但没有太大成功。我的观点是:

<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