2011-01-15 2 views
0

Я использую Symfony PHP Framework для создания веб-приложения и использования форм Symfony для создания HTML-форм. Я пытаюсь загрузить данные в элементе Select с помощью Ajax, потому что я использую функции Ajax jQuery. Он работает нормально, поскольку он отправляет и получает ответ правильно (статус 200), но не вызывает функцию обратного вызова в некоторых браузерах, таких как IE, Chrome и Safari. Он отлично работает в Firefox и Opera. Кодекс, который не работает,Функция jQuery ajax callback не работает

$.ajax({ 
        type: 'POST', 
        url: 'form/ajax', 
        async: true, 
        cache: false, 
        dataType : 'json', 
        data: 'id='+ids, 
        success: function(jsonData){ 
         alert("ok go");        
        } 
     }); 

предупреждение «OK Go» не вызывается в Chrome, IE и Safari Но

$.ajax({ 
        type: 'POST', 
        url: 'form/ajax', 
        async: true, 
        cache: false, 
        dataType : 'json', 
        data: 'id='+ids, 
        success: alert("ok go");        

     }); 

это работает, но в соответствии с проектом я хочу, Данные JSON для загрузки в элементе Select. есть ли что-то неправильное в обратном формате JSON или ошибка в функциях jQuery Ajax, пожалуйста, помогите.

+1

Что-то примечание, в вашем втором примере «ok go» называется WHILE, когда '.ajax' настраивается не во время его обратного вызова. То есть он принимает «результат« alert() »и присваивает это значение параметру обратного вызова, а затем передает эти значения в' .ajax' для выполнения. –

+0

@ Brad Christie ok, но в первом примере он не возвращает данные, отправляемые сервером в переменной jsonData ?? и, следовательно, не работает в других браузерах, кроме Firefox. –

ответ

0

Прежде всего спасибо @Kamyar и @Brad Christie, чтобы помочь мне решить проблему. проверяя, как Камяр сказал, чтобы изменить формат id на формат JSON, я проверил формат возврата для JSON и обнаружил, что это вызывает проблему, поскольку это не был допустимый формат JSON. Обратный формат JSON вызывал проблему! вернуть JSON с ошибкой,

{"ugdegree":[{"id":31,"specialization":"Dentistry"},{"id":32,"specialization":"Other"},]} 

была лишняя запятая в конце (вызывая проблемы) Теперь она была устранена! , поэтому, если у кого-то есть такая же проблема, проверьте формат JSON! если это может быть так.

0

Вы были почти там. замените 'id=' + ids на 'id:'+ids

ОБНОВЛЕНИЕ: Я написал плагин JQuery, который упрощает сериализацию ajax и сериализации json. вы можете скачать его по адресу: http://www.4shared.com/file/8hHJll-R/Pagemethod-2.html

+0

ОК, я попробую это. –

+0

Благодарим вас за помощь и за предоставленную вами ссылку! –

+0

и @Kamyar это не была ошибка, вызванная DATA, которая была отправлена, но данные о возврате отправляются с сервера. –

Смежные вопросы