Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2013, 20:32
Интересующийся
Отправить личное сообщение для amelinviacheslav Посмотреть профиль Найти все сообщения от amelinviacheslav
 
Регистрация: 14.03.2013
Сообщений: 18

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 и опере при получении ответа с сервера появляется окошко загрузки файла (картинка из IE в опере аналогично) и чтоб я не выбрал: открыть сохранить отменить - alert ('123132132'); не наступает.
Ответ - простая строка. dataType попробовал все значения, но не помогло - загрузка файла. А сам загружаемый файл и содержит как раз таки нужную строку (я его сохранял как txt).

Вот и возник вопрос - как сделать так чтоб я получал строку строкой и браузеры не думали что им суют файл на загрузку....
Может найдется добрая душа и направит на путь истинный.
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2013, 21:16
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

amelinviacheslav,

Попробуйте выставить правильный Сontent type на сервере.
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2013, 21:24
Интересующийся
Отправить личное сообщение для amelinviacheslav Посмотреть профиль Найти все сообщения от amelinviacheslav
 
Регистрация: 14.03.2013
Сообщений: 18

все бы хорошо, но сервер не мой - и что и как там реализовано неизвестно. сервер - uploads.ru. что и как они посылают....можно только догадываться....
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2013, 21:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от amelinviacheslav
можно только догадываться....
гадать не надо, достаточно открыть отладчик в браузере и посмотреть заголовки ответа.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 15.03.2013, 07:01
Интересующийся
Отправить личное сообщение для amelinviacheslav Посмотреть профиль Найти все сообщения от amelinviacheslav
 
Регистрация: 14.03.2013
Сообщений: 18

так я же методом научного тыка перебрал все дататайпы и всеравно просит закачку файла. до обработки в success не доходит.
в ответ приходит просто текст! и я его запросто обрабатываю, но меня бесит что он из-за закачки просто не доходит. вот я и в ступоре - как убрать закачку файла и оставить только ответ сервера в обработчике.
Ответить с цитированием
  #6 (permalink)  
Старый 15.03.2013, 08:40
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от amelinviacheslav
в ответ приходит просто текст
Это не так. Помимо тела ответа, есть еще заголовки, о которых сказал devote
Например Content-Disposition, который если выставлен как attachment, то браузер предложит сохранить файл. Правда как это будет работать в условиях XHR-запроса я не в курсе)
Ответить с цитированием
  #7 (permalink)  
Старый 15.03.2013, 11:15
Интересующийся
Отправить личное сообщение для amelinviacheslav Посмотреть профиль Найти все сообщения от amelinviacheslav
 
Регистрация: 14.03.2013
Сообщений: 18

Даник, спасибо за ответ!Devote - спасибо за направление поиска!!
Попробую конечно покопаться в этом направлении....
Но получается придется отлаживать на уровне файла jquery.js - т.к. получение ответа с в\сервера приходит где-то там....т.е. если я обрежу все лишние заголовки то должно по идее наступить счастье))) а т.к. используется аякс только 1 раз на этом скрипте то можно безболезненно править оригинал....
Попробую разобраться!! Отладка спасет мир и взломает очень многое!!)))

самое интересное - на самых свежих версиях jquery и jqueryform ответ не приходил в принципе - в опере и ИЕ вообще никакой реакции. по наводке кого то на форуме скачал версии подревнее - jquery 1.6.2 и все заработало без правки скриптов....странно но факт....но это не тема данной ветки а просто информация для размышления.

Ребята, а маленький офтоп - в фаербаге посмотреть ответ могу, но в опере в драконфлае и в ИЕ во встроенном отладчике не знаю куда давить.

Последний раз редактировалось amelinviacheslav, 15.03.2013 в 11:21.
Ответить с цитированием
  #8 (permalink)  
Старый 15.03.2013, 12:37
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

вкладка Сеть (Network) есть везде.
Ответить с цитированием
  #9 (permalink)  
Старый 15.03.2013, 14:45
Интересующийся
Отправить личное сообщение для amelinviacheslav Посмотреть профиль Найти все сообщения от amelinviacheslav
 
Регистрация: 14.03.2013
Сообщений: 18

Понял. Вечером как только доберусь до проекта попробую.
Ответить с цитированием
  #10 (permalink)  
Старый 15.03.2013, 21:44
Интересующийся
Отправить личное сообщение для amelinviacheslav Посмотреть профиль Найти все сообщения от amelinviacheslav
 
Регистрация: 14.03.2013
Сообщений: 18

попробовал посмотреть заголовки ответа
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
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax success в ie7 проблема harek13 AJAX и COMET 0 26.05.2011 17:15
Проблема с получением атрибутов элементов из набора Nightwalker_nsk jQuery 2 17.05.2011 08:32
Проблема сс получением данных от Jquery Form FahrenheitIndi jQuery 0 12.11.2010 22:43
Проблема вывода кириллицы в Опера ASPAnt Opera, Safari и др. 5 01.06.2010 14:07