Javascript.RU

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

Обработка ответа JSONP (jQuery)
Необходимо на jQuery получить информацию с сайта EMS.
API EMS: http://emspost.ru/ru/corp_clients/do...docements/api/

Код:
$(document).ready(function(){

  function reCalcEmsRu(){
    var urlCalculate = "http://emspost.ru/api/rest?method=ems.calculate&callback=jsonEMSApi&from=city--moskva&to=city--brjansk&weight=2" ;		
						
    $.ajax({
      url:  urlCalculate,
      dataType: "jsonp",
    });
 
  }
 
  function jsonEMSApi(data){
    console.log(data);
  }

});
reCalcEmsRu() запускается по клику, EMS нормально отдает ответ:
jsonEMSApi,jQuery18209760578817711928_140189349745 0({"rsp":{"stat":"ok","price":"1040","term":{"min" :"3","max":"4"}}})

Подскажите, пожалуйста, как словить ответ в мою функцию, постоянно выдает: jsonEMSApi is not defined
Сейчас функция в глобальной области видимости. Пробовал по-разному с ней, + с разными параметрами аякса, результат один.
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2014, 19:48
Профессор
Отправить личное сообщение для depp Посмотреть профиль Найти все сообщения от depp
 
Регистрация: 22.04.2014
Сообщений: 151

$.ajax({
      url:  urlCalculate,
      dataType: "jsonp",
      jsonp: 'jsonEMSApi'
});
Ответить с цитированием
  #3 (permalink)  
Старый 05.06.2014, 00:01
Новичок на форуме
Отправить личное сообщение для walking Посмотреть профиль Найти все сообщения от walking
 
Регистрация: 08.01.2012
Сообщений: 8

Сообщение от depp Посмотреть сообщение
jsonp: 'jsonEMSApi'
Спасибо за ответ. Пробовал так. Тот же "jsonEMSApi is not defined" получаю.
Ответить с цитированием
  #4 (permalink)  
Старый 05.06.2014, 00:58
Профессор
Отправить личное сообщение для depp Посмотреть профиль Найти все сообщения от depp
 
Регистрация: 22.04.2014
Сообщений: 151

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$.ajax({
      url: "http://emspost.ru/api/rest?method=ems.calculate&callback=jsonEMSApi&from=city--moskva&to=city--brjansk&weight=2",
      dataType: "jsonp",
      jsonp: 'jsonEMSApi'
});

function jsonEMSApi(data){
   alert(data.rsp.price);
}</script>
Ответить с цитированием
  #5 (permalink)  
Старый 05.06.2014, 01:36
Новичок на форуме
Отправить личное сообщение для walking Посмотреть профиль Найти все сообщения от walking
 
Регистрация: 08.01.2012
Сообщений: 8

Что-то не пойму, в чем затык. Вроде какая-то мелочь.
Тут у вас работает. У меня на сайте - нет.
Вот набросал в песочнице:
http://learn.javascript.ru/play/ez2Wp , также не работает.
Если из песочницы в html-файл сохранить и в FF запустить, видно будет "jsonEMSApi is not defined".
Ответить с цитированием
  #6 (permalink)  
Старый 05.06.2014, 02:48
Профессор
Отправить личное сообщение для depp Посмотреть профиль Найти все сообщения от depp
 
Регистрация: 22.04.2014
Сообщений: 151

мне кажется вы не совсем понимаете что делаете. не используйте параметр callback в запросе к их сервису. тогда не надо будет использовать вашу функцию. и не надо преобразовывать объект в объект при помощи parsejson, так как система вам итак возвращает объект.

Сообщение от depp Посмотреть сообщение
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$.ajax({
    url: "http://emspost.ru/api/rest?method=ems.calculate&from=city--moskva&to=city--brjansk&weight=2",
    dataType: "jsonp",
    success: function(data) {
        alert(data.rsp.price);
    }
});</script>
Ответить с цитированием
  #7 (permalink)  
Старый 05.06.2014, 14:46
Новичок на форуме
Отправить личное сообщение для walking Посмотреть профиль Найти все сообщения от walking
 
Регистрация: 08.01.2012
Сообщений: 8

depp, работает. Спасибо!

Сообщение от depp Посмотреть сообщение
мне кажется вы не совсем понимаете что делаете.
С Сross Site Sсriрting первый раз имею дело. До сих пор не попадались для работы сервисы, поддерживающие эту возможность.

Сообщение от depp Посмотреть сообщение
не используйте параметр callback в запросе к их сервису.
Это какое-то "горе от ума". Делал бы как обычно, сделал бы влет и не мучал бы мозг 2 дня. Нет, полез доки читать... Читать вредно!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Node.js, jQuery, nginx] Ошибка получения ответа на POST-запрос от сервера bukvaG AJAX и COMET 0 14.12.2012 10:52
Обработка ответа после POST-запроса (jQuery - Ajax) battrack jQuery 6 29.07.2012 16:06
JQuery: загрузка и обработка изображения MCTrane Общие вопросы Javascript 8 25.12.2011 22:34
JQuery отложенная обработка событий hover DemonWather jQuery 2 09.03.2011 09:01
Цепная обработка события MouseDown с использованием jQuery gifer Events/DOM/Window 0 18.02.2011 16:55