JavaScript: Как я создаю JSONP?

невероятный, что можно найти механизм SQL, выполняющий этого...

WITH sentence AS
(SELECT 
    stuff,
    row = ROW_NUMBER() OVER (ORDER BY Id)
FROM 
    SentenceType
    )
SELECT
    sen.stuff
FROM sentence sen
WHERE sen.row = (ABS(CHECKSUM(NEWID())) % 100) + 1
40
задан Rudey 13 November 2012 в 13:53
поделиться

5 ответов

Это просто. Просто примите параметр обратного вызова в GET.

Затем оберните функцию обратного вызова JavaScript вокруг ваших данных.

Пример в PHP:

<?php

$data = '{}'; // json string

if(array_key_exists('callback', $_GET)){

    header('Content-Type: text/javascript; charset=utf8');
    header('Access-Control-Allow-Origin: http://www.example.com/');
    header('Access-Control-Max-Age: 3628800');
    header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');

    $callback = $_GET['callback'];
    echo $callback.'('.$data.');';

}else{
    // normal JSON string
    header('Content-Type: application/json; charset=utf8');

    echo $data;
}

Идея состоит в том, чтобы просто вернуть файл JavaScript, который вызывает функция обратного вызова с объектом JSON в качестве первого параметра функции обратного вызова JavaScript.

Вы можете использовать встроенную функцию json_encode () для создания строк JSON (которые $ data ] в нашем примере выше содержит) из массивов и объектов в PHP.

Чтобы использовать службу JSONP, вы можете использовать тег