我在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”(我的创建的路径动作).
什么会导致这种情况发生,什么可以解决?不知道这是否是问题的一部分,但我没有在我的表单中提交按钮,我有一个链接与点击处理程序调用$(‘#new_stem).submit()
多谢你们!
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
解决方法
为了防止浏览器触发.json文件的内容类型标题下载到“text / html”.
PHP:
header("Content-type: text/html");
ASP.NET MVC:
return Json(obj,"text/html");
在javascript中,您需要解析文本结果,如下所示:
$(".addform").ajaxSubmit({ url: "file.PHP",type: "POST",dataType: "text",iframe: true,success: function (text) { var data = $.parseJSON(text); },error: function (xmlRequest,textStatus,errorThrown) { alert(errorThrown); } });
工作完美