JSON, JSONP и теги сценариев - PullRequest
       19

JSON, JSONP и теги сценариев

0 голосов
/ 02 февраля 2011

Я новичок в этом и очень смущен этим. Прости меня, если это звучит глупо. Я хочу встроить контент в другой домен с помощью тегов скрипта. Я узнал, что страница, предоставляющая контент, должна дать ответ json. Страница, предоставляющая контент, представляет собой php-файл, который выводит его из моей базы данных. Как мне пойти на это?

Я попробовал простой пример json, но он не сработал, что я делаю не так?

test.php

<script type="text/javascript" src="http://example.com/test2.php?WrapperFunction=SomeFuncNameSpecifiedInTheRequest">

test2.php

<code><script type="text/javascript">
function SomeFuncNameSpecifiedInTheRequest({"data" : "<pre>Some Html
"});

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

HTTP-ответ для JSON-P должен быть:

  • JSON-P, а не фрагмент HTML со встроенным JSON-P
  • Вызовите функцию, поэтому она не должна использовать ключевое слово function, которое определяет одно
  • Вызов функции, которая существует
  • Иметь правильный тип контента

Так в test.php

<script type="text/javascript">
    function SomeFuncNameSpecifiedInTheRequest(data) {
        // does stuff with the data object
    }
</script>
<script type="text/javascript" src="http://example.com/test2.php?WrapperFunction=SomeFuncNameSpecifiedInTheRequest">

и в test2.php

<code><?php
    header('Content-Type: application/javascript');
?>
SomeFuncNameSpecifiedInTheRequest({"data" : "<pre>Some Html
"});
0 голосов
/ 02 февраля 2011

Ключевое слово function используется для определения новой функции.Поскольку JSONP вызывает уже существующую функцию (называемую «функцией обратного вызова»), вам не нужно это ключевое слово, и оно вызывает проблемы, потому что я не верю, что это даже допустимый ECMAScript.

...