ajaxSubmit - проблема с получением ответа в success в опера и IE
Здравствуйте!
Я не самый продвинутый явовщик, но жизнь заставила разбираться. Проблема у меня одним местом чую элементарная, но за три дня лазанья по инету ничего не понял. Есть скрипт: $(function() {var options = {url: 'урл', type: 'POST', //dataType: 'text', data: { данные }, success: function( responseText, statusText, xhr ) { alert ('123132132'); ); error: function(textStatus) { alert( textStatus ); }, complete: function() { alert( 'complete' ); } $( form ).ajaxSubmit( options ); за код сильно не бейте - сокращал для форума на вскидку и мог накосячить с правильностью, но не в этом главное. В целом классический скрипт. В фаерфоксе все работает отлично - приходит ответ, я получаю alert ('123132132');. а вот в ie8 и опере при получении ответа с сервера появляется окошко загрузки файла ![]() Ответ - простая строка. dataType попробовал все значения, но не помогло - загрузка файла. А сам загружаемый файл и содержит как раз таки нужную строку (я его сохранял как txt). Вот и возник вопрос - как сделать так чтоб я получал строку строкой и браузеры не думали что им суют файл на загрузку.... Может найдется добрая душа и направит на путь истинный.:help: |
amelinviacheslav,
Попробуйте выставить правильный Сontent type на сервере. |
все бы хорошо, но сервер не мой - и что и как там реализовано неизвестно. сервер - uploads.ru. что и как они посылают....можно только догадываться....
|
Цитата:
|
так я же методом научного тыка перебрал все дататайпы и всеравно просит закачку файла. до обработки в success не доходит.
в ответ приходит просто текст! и я его запросто обрабатываю, но меня бесит что он из-за закачки просто не доходит. вот я и в ступоре - как убрать закачку файла и оставить только ответ сервера в обработчике. |
Цитата:
Например Content-Disposition, который если выставлен как attachment, то браузер предложит сохранить файл. Правда как это будет работать в условиях XHR-запроса я не в курсе) |
Даник, спасибо за ответ!Devote - спасибо за направление поиска!!
Попробую конечно покопаться в этом направлении.... Но получается придется отлаживать на уровне файла jquery.js - т.к. получение ответа с в\сервера приходит где-то там....т.е. если я обрежу все лишние заголовки то должно по идее наступить счастье))) а т.к. используется аякс только 1 раз на этом скрипте то можно безболезненно править оригинал.... Попробую разобраться!! Отладка спасет мир и взломает очень многое!!))) самое интересное - на самых свежих версиях jquery и jqueryform ответ не приходил в принципе - в опере и ИЕ вообще никакой реакции. по наводке кого то на форуме скачал версии подревнее - jquery 1.6.2 и все заработало без правки скриптов....странно но факт....но это не тема данной ветки а просто информация для размышления. Ребята, а маленький офтоп - в фаербаге посмотреть ответ могу, но в опере в драконфлае и в ИЕ во встроенном отладчике не знаю куда давить. |
вкладка Сеть (Network) есть везде.
|
Понял. Вечером как только доберусь до проекта попробую.
|
попробовал посмотреть заголовки ответа
HTTP/1.1 200 OK Server: nginx Date: Fri, 15 Mar 2013 17:39:56 GMT Content-Type: application/json; charset=UTF-8 Content-Length: 441 Connection: keep-alive Last-Modified: Fri, 15 Mar 2013 17:39:57GMT Cache-Control: no-cache, must-revalidate Pragma: no-cache Access-Control-Allow-Origin: * {"status_code":200,"status_txt":"OK","data":{"img_name":"89uwf.jpg","img_url":"http:\/\/s2.uploads.ru\/89uwf.jpg","img_view":"http:\/\/uploads.ru\/89uwf.jpg","img_width":"390","img_height":"293","img_attr":"width=\"390\" height=\"293\"","img_size":"27.1 KB","img_bytes":27792,"thumb_url":"http:\/\/s2.uploads.ru\/t\/89uwf.jpg","thumb_width":100,"thumb_height":75,"source":"base64 image string","resized":"1","delete_key":"fed6df71df55f710"}} как я понял тип данных ответа Content-Type: application/json; charset=UTF-8 и как понимаю application это и есть та бяка изза которой начинается скачивание файла.... В апи сервера нашел как выставить в параметрах запроса тип ожидаемого ответа, но как только тип JSON меняю на другой (txt или xml) опера и ИЕ снова перестают отрабатывать success. буду пробовать отлаживать jquery.js |
Часовой пояс GMT +3, время: 16:41. |