Плагин JSON формы jquery не может быть приобретен - PullRequest
0 голосов
/ 02 сентября 2011

Я буду загружать файл с помощью плагина jquery form, и вопрос о явлении истечения времени ожидания $ .ajaxForm, когда данные ответа json.

Обработка на стороне сервера выполняется без проблем, и данные ответа возвращаются в форме, пока она видит с помощью firebug форму json. Тем не менее, я думаю, что $ .ajaxForm не может получить данные. В дальнейшем это часть обработанного кода.

    <b>code</b>
    $('#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');
    },
    });
    
    <b>response</b>
    <i>(firebug)</i></p>

<code>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')

Когда dataType был html, удалось обработать успех. Более того, когда это $ .ajax, json становится успешным. Есть план урегулирования? Он спрашивает соответственно.

1 Ответ

0 голосов
/ 02 сентября 2011

попробуйте настроить 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');
    },
    });
...