Как получить код Javascript из JSONP в JQuery - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть php-файл, который обращается к memcache и получает сохраненный код JavaScript.Этот файл затем повторяет содержимое JS.Я использую iFrame для доступа к этому файлу.Но теперь есть требование получить этот код JS без использования iFrame.Я думаю сделать AJAX-вызов и получить этот код JS.Проблема в том, что файл php является междоменным.Я узнал, что ajax не может работать в кросс-браузерном режиме.JSONP содержит ответ.Но я не знаю синтаксис.Я проверил много документов, но не смог понять, как это сделать.

Это мой php-файл memcacheJs.php:

$id        =  $_GET['mc_id'];
$js_code   =  $memcacheRW->get($id);
echo          $js_code;
$memcacheRW -> delete($id);

Мне нужно вызвать этот файл, отправив mc_idполучите этот js_code в качестве ответа ajax.Я попробовал этот код jquery:

var jsCode      = "js_code="+_cO.cmK[keyword].ad[0][4];
var crossDomURL = "http://ph.cm.shades1ld1/frame2.php";

$pH.getJSON(crossDomURL+"&callback=?", function(data) {alert(data);});

Но это не работает, что делать?Пожалуйста, помогите

1 Ответ

1 голос
/ 15 сентября 2011

Вы должны соответствовать функции обратного вызова, посмотрите на jsonpCallback параметр.Вот рабочий пример использования jsonP (упрощенно).

$.ajax({
        url: "/myUrl.php",
        data: {
            'date' : '2011-01-01', 
            'specie' : 'cervus'
        }, 
        dataType : 'jsonp',
        jsonpCallback: 'onModify',
        success: function(data){
            console.log(data);
            return false;
         }
    });

//the php code 
$data = array('some', 'values', 'in','response');
echo "onModify(". json_encode($data).")";
...