Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   ajaxSubmit - проблема с получением ответа в success в опера и IE (https://javascript.ru/forum/jquery/36427-ajaxsubmit-problema-s-polucheniem-otveta-v-success-v-opera-i-ie.html)

danik.js 15.03.2013 22:11

А зачем ajaxSubmit?
Почему не просто $.ajax или $.post ?

amelinviacheslav 15.03.2013 22:57

основу скрипта писал другой человек и я не могу сказать почему он выбрал именно такой подход. Он все отлаживал в фаерфоксе - поэтому остальные браузеры остались не у дел, а мне теперь надо довести скрипт до ума. в основном скрипте есть два обращения к серверу: через ajaxSubmit и через $.ajax. $.ajax - не работает в ИЕ и опере в принципе - пока что не трассировал, но гдето видно есть заморочки. ajaxSubmit - заработал почти полностью - вот и решил его довести до ума.
только что посмотрел ответ на запрос через $.ajax - как и ожидалось - один в один как и при запросе через ajaxSubmit.

Как я понимаю даже если я буду использовать $.ajax или $.post то при абсолютно аналогично ответе как сейчас картина не изменится и всеравно прийдется искать как обойти загрузку файла....

danik.js 15.03.2013 23:11

Мне вот кажется что ajaxSubmit испольузет iframe для запроса. Отсюда и беды. Сделайте небольшой тестовый js-скрипт + сценарий на сервере, возвращающий json, и разрещающий кроссдоменные запросы.

amelinviacheslav 15.03.2013 23:28

насколько я помню ajaxSubmit при создании формы делает чтото с iframe.
Спасибо за идею! Сейчас попробую в "голом" аяксе

amelinviacheslav 16.03.2013 00:25

а голый аякс сработал)))) все пришло в нужном формате и без рудиментов))) теперь только парсер ответа в ИЕ выделывается - но это уже не проблема.
danik.js - именно так как Вы говорили и получилось! Спасибо огромное!

Т.е. если есть проблемы - чем меньше надстроек тем лучше!
Тему можно закрывать!

amelinviacheslav 16.03.2013 21:10

Рано обрадовался.
Смысл изначального скрипта был в отправке файла, а это возможно только в iframe.
голый аякс просто так это не делает, соответственно как раз ajaxSubmit и создает нужную обертку.
вот и получается что вопрос возникает снова - при получении ответа снова загрузка файла.(((((

HTTP/1.1 200 OK
Server: nginx
Date: Sat, 16 Mar 2013 17:08:58 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 441
Connection: keep-alive
Last-Modified: Sat, 16 Mar 2013 17:08:58GMT
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Access-Control-Allow-Origin: *

{"status_code":200,"status_txt":"OK","data":{"img_name":"lRT1E.jpg","img_url":"http:\/\/s2.uploads.ru\/lRT1E.jpg","img_view":"http:\/\/uploads.ru\/lRT1E.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\/lRT1E.jpg","thumb_width":100,"thumb_height":75,"source":"base64 image string","resized":"1","delete_key":"bd27ce5a84872e7e"}}

вот корректный ответ сервера.
Может быть будут идеи как его не "загружать файлом"

danik.js 16.03.2013 21:21

Цитата:

Сообщение от amelinviacheslav
голый аякс просто так это не делает

XMLHttpRequestUpload делает. Но его нет в старых браузерах. Это не проблема? Хотя вобще не знаю подойдет ли он вам. Если есть возможность - выставьте на сервисе mimeType text/plain, думаю это поможет с iframe'ом

amelinviacheslav 17.03.2013 10:31

Так вот и дилема теперь - можно отрезать старые браузеры и работать только с новыми (хотя старых все меньше и меньше.....) к сожалению к сервису доступа нету - это фотообменник.

danik.js 17.03.2013 11:26

Раз форма отправляется на чужой домен, то как вы прочитаете ответ? Политика безопасности этого же не позволит.

devote 17.03.2013 15:36

Цитата:

Сообщение от danik.js
Политика безопасности этого же не позволит.

Цитата:

Сообщение от amelinviacheslav
Access-Control-Allow-Origin: *

этот заголовок позволит читать


Часовой пояс GMT +3, время: 23:39.