Javascript.RU

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

JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений?
Привет.
Сразу объясню суть задачи:
Есть два сервера, назовем их: example1.com и example2.com
С сервера example1.com на сервер example2.com должны передаваться данные. Формат выбрал json. Так - как он достаточно прост в структуре, и в следствии этого обладает высокой скоростью передачи.
Начал смотреть, что выбрать, JSON или JSONP?
Почитав статей понял, что только JSONP обладает возможностью кросдоменных запросов.
И вот тут момент один!
$.ajax({
		type: "POST",
		url: 'http://localhost/json',
		data: 'id=5',
		dataType: "json",
		success: function(response) {
			alert('Привет: '+response.hello);
  		}
	});

Это обычный JSON, отправляемый методом POST.
Ответ от сервера (словарь) обрабатываем с помощью success.
А теперь JSONP:
$.ajax({ 
  type: 'GET', 
  dataType: 'jsonp', 
  data: 'id=5',
  url: 'http://localhost/jsonp/', 
  success: function (response) { 
     alert('Привет: '+response.hello);
  } 
});

Если JSON и JSONP работают по одной технологии, то есть вставляют тег <script src="...">, взаимодействуют с сервером (отправляют и получают ответ), то в чем вообще смысл JSONP? К тому же теряется явное преимущество в виде отправки методом POST, которое есть у JSON! Конечно мы приобретаем + в плане безопасности. В JSONP у нас есть callback, который будет обрабатывать ответ от сервера так, как нам нужно.
И самое важное для меня!
Мне нужно будет отправлять сообщения, максимальная длинна которых примерно 1000 символов. Насколько я помню, длина GET=256 символам!
После тестов оказалось, что методом GET можно отправить намного больше 256 символов, о чем я писал в предыдущем топе Как с помощью JSON передать серверу словарь с данными?.
Ну что то я расписался блин...
Подводя итог, вопросы у меня такие:
1. Что нужно использовать для решения моей задачи? JSON или JSONP
Если можно с примером! А то я совсем запутался...
2. Какие мысли по поводу передачи длинных сообщений (~1000) методом JSONP, через GET (если именно он мне нужен). Потянет?
Ответить с цитированием
  #2 (permalink)  
Старый 16.08.2011, 18:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Kotakota
JSON или JSONP
Вы сравниваете тёплое с мягким. JSON -- способ кодирования данных, JSONP -- способ получения данных с сервера, использующий JSON в качестве способа кодирования. Между ними нельзя выбирать.
Ответить с цитированием
  #3 (permalink)  
Старый 16.08.2011, 18:51
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

есть куча способов пообщаться через домены
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2011, 06:29
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Эта куча способов размыта сильно.
Хотя я понимаю, что Илья хотел показать все способы, а Вы уже выбирайте, что хотите.
Сейчас есть два кандидата:
CORS и JSONP
У CORS есть куча преимуществ и один огромный минус, который выражается в отсутствии нормальной поддержки его браузерами.
JSONP - нет возможности передовать данные методом POST.
Я представляю, если у меня будет передаваться такое, например:
$.ajax({ 
  type: 'GET', 
  dataType: 'jsonp', 
  data: {id:{'key1':'value1fdsfdsfdsfsdfsdfdsfdsfsdfsdsdfsfsdsdffssdffsd......и т.д. около 1000 символов!','key2':'value2'}},
  url: 'http://localhost/jsonp/', 
  success: function (data) { 
   // ... 
  } 
});

Ну и вообще JSONP больше подходит для получения информации, а не для записи.
Стою на распутье, не знаю, что выбрать для решения своей задачи
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2011, 08:16
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

В прошлой твоей теме кто-то говорил что можно слать POST-запросы на сторонний сервер и получать от него ответы, вот спрашивай у этого человека как это делается.
Ответить с цитированием
  #6 (permalink)  
Старый 23.08.2011, 22:12
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

На основе этого способа можно сделать получение данных после POST запроса.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 22:36