Да, 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.
person
Nick Craver
schedule
21.07.2010