无法获取jquery表单插件的Json

时间:2011-09-02 05:45:58

标签: jquery-plugins jquery jquery-forms-plugin

我将使用jquery表单插件上传文件,并询问$ .ajaxForm在响应数据为json时变为超时的过程现象。

服务器端的处理没有遇到任何麻烦,只要用firebug看到json格式,响应数据就会以形状返回。 但是,我认为$ .ajaxForm无法获取数据。此后,它是已处理代码的一部分。     

    code
    $('#upload').ajaxForm({
    cache: false,
    dataType: 'json',
    type: 'POST',
    error: function(xhr ,status ,error ) {
        alert('error occured. Status:' + status
            + ' --Status Text:' + error
            + ' --Error Result:' + xhr.statusText); 
    },
    timeout: 1000,
    dataType:'json',
    data:{ 'path':'path' , 'type':'type' },
    complete: function(){
        alert('complete');
    },
    success:function(data){
        alert('success');
    },
    });
    
    
    response
    (firebug)

header Connection close Content-Length 155 Content-Type application/json; charset=utf-8 Status 200 data json {"type":"json","message":"complete process"} <i>(A browser)</i> ①download json data ②alert('error occured. Status:timeout --Status Text:timeout --Error Result:n/a') ③alert('complete') </pre>

当dataType为html时,可以处理成功。 而且,当它是$ .ajax时,json就会成功。 是否有解决方案?它要求适当。

1 个答案:

答案 0 :(得分:0)

尝试设置contentType喜欢

   $('#upload').ajaxForm({
    cache: false,
    dataType: 'json',
    contentType:"application/json; charset=utf-8",
    type: 'POST',
    error: function(xhr ,status ,error ) {
        alert('error occured. Status:' + status
            + ' --Status Text:' + error
            + ' --Error Result:' + xhr.statusText); 
    },
    timeout: 1000,      
    data:{ 'path':'path' , 'type':'type' },
    complete: function(){
        alert('complete');
    },
    success:function(data){
        alert('success');
    },
    });