【发布时间】:2011-02-14 21:29:58
【问题描述】:
我在 Rails 中有一个模型创建表单,我还通过 ajax 返回 JSON。 到目前为止,我的代码如下所示:
$('#new_stem').ajaxForm({ //#new_stem is my form
dataType: 'json',
success: formSuccess
});
function formSuccess(stemObj) {
//does stuff with stemObj
}
我有一个带有文件上传器的多部分表单(但我不确定这是否相关)。
当我提交表单时,它工作正常(我的模型正在正确创建并呈现为 json),但不是由 formSuccess 函数处理 json,而是提示下载“stems.json”(路径我的词干创建操作)在 Firefox 中。
什么会导致这种情况发生,什么可以解决它?不知道这是否是问题的一部分,但我的表单中没有提交按钮,我有一个链接到点击处理程序调用 $('#new_stem).submit()
谢谢大家!
编辑:Firebug 告诉我标题包含以下内容:
Etag "b53e5247e7719cf6b1840e2c6e68781c"
Connection Keep-Alive
Content-Type application/json; charset=utf-8
Date Mon, 03 May 2010 02:19:31 GMT
Server WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)
X-Runtime 241570
Content-Length 265
Cache-Control private, max-age=0, must-revalidate
加上一个 cookie 标头
【问题讨论】:
-
我认为这与文件上传方面有关。如果我使用 Firefox 直接导航到 json 文件,则会打开相同的提示,并且我知道为了通过 ajax 上传文件,必须创建一个单独的 iframe 来提交表单。我认为 iframe 之后只是导航到该 json 文件,firefox 尝试将其作为下载处理。我可以更改任何服务器端选项以使其认为不是下载吗?
标签: jquery ruby-on-rails json ajaxform