jQuery ajaxForm返回.json文件

前端之家收集整理的这篇文章主要介绍了jQuery ajaxForm返回.json文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在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()

多谢你们!

编辑: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标题

解决方法

为了防止浏览器触发.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);
            }
        });

工作完美

猜你在找的jQuery相关文章