Подтвердить что ты не робот

Требует ли JSONP модификации сервера?

Я понимаю, что jsonp - это метод, позволяющий обойти одну и ту же политику происхождения. Вы в основном ссылаетесь на конечную точку сервера обслуживания json в теге script, потому что теги script освобождаются от политики SO.

Мой вопрос: если сервер имеет конечную точку, которая обслуживает json, есть ли какие-либо изменения, необходимые на сервере для использования jsonp в клиенте?

Я думаю, нет, но хочу быть уверенным.

4b9b3361

Ответ 1

Да, JSONP немного отличается при отображении, поэтому ваш сервер должен его поддерживать.

JSON выглядит так:

{ "name": "value" }

В то время как JSONP выглядит так:

functionName({ "name": "value" });

Если все, что вы используете, поддерживает его, вы закрыты, но это не то же самое, что поддержка JSON. Когда сервер получает запрос, например: http://example.com/json?callback=functionName, вышесказанное - это то, что вы должны сделать, потому что, как он выглядит на странице, это:

<script type="text/javascript" src="http://example.com/json?callback=functionName"></script>

Это означает, что что-то, что выполняется, должно быть возвращено, в качестве иллюстрации это действительно:

<script type="text/javascript">
  functionName({ "name": "value" });
</script>

Если ваш сервер не поддерживает JSONP, это будет эффективно:

<script type="text/javascript">
  { "name": "value" }
</script>

... и вы получите синтаксические ошибки, так как это недействительный JavaScript.