Есть ли причины не использовать JSONP для запросов AJA ~ X?

StackOverflow https://stackoverflow.com/questions/19173

  •  09-06-2019
  •  | 
  •  

Вопрос

Если вы создаете AJA~Xy приложение, есть ли какие-либо недостатки в использовании JSONP запросы / ответы, даже если вы не планируете никаких cross-domain просьбы?

Единственное, о чем я могу подумать, это о том, что есть пара дополнительных байтов для оболочки обратного вызова...

Редактировать:

Я нашел это что также наводит на мысль security and error handling как потенциальные проблемы...

Нет никакой обработки ошибок.Тот Самый script injection либо это работает, либо нет.Если произошла ошибка из-за injection, он попадет на страницу, и, если не считать обработчика ошибок по всему окну (плохой, плохой, очень плохой), вам нужно быть уверенным, что возвращаемое значение допустимо на server side.

Я не думаю, что error handling это большая проблема...большинство из нас использовали бы библиотеку для создания JSON...правильность моего ответа не имеет отношения к этому вопросу.

и безопасность:

В Интернете есть документы, которые могут помочь, но в качестве беглой проверки я бы проверил реферера в server side сценарий.

похоже, что это потенциальная проблема при любом типе ответа...конечно, в этом нет ничего уникального. JSONP в сфере безопасности ...?

Это было полезно?

Решение

Обратная сторона?Это довольно ограничено - вы запускаете запрос "GET" и получаете обратно какой-то выполненный скрипт.Вы не получаете обработку ошибок, если ваш сервер выдает ошибку, поэтому вам также нужно записать все ошибки в JSON.На самом деле вы не можете отменить или повторить запрос.Вы находитесь во власти различных мнений авторов браузера о "правильном" поведении динамически генерируемых <script> Теги.Отладка несколько сложнее.

Тем не менее, я иногда пользовался этим и не страдал.ИММВ.

Другие советы

Возможно получение ошибок при сбое вызова jsonp.

http://code.google.com/p/jquery-jsonp/

Надеюсь, это поможет.

Я бы сказал, что самым большим ограничением могут быть дополнительные накладные расходы на то, чтобы браузер отображал тег скрипта для вызова сервера.Кроме того, действительно ли JSONP считается AJAX, поскольку на самом деле он не использует объект XMLHttpRequest?

Вот еще один момент, который вы, возможно, захотите рассмотреть с помощью JSONP..возможны утечки памяти..

http://neil.fraser.name/news/2009/07/27/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top