如何在jquery中从JSONP获取javascript代码

时间:2011-09-15 12:13:16

标签: jquery jsonp

我有一个php文件,它访问memcache并获取存储的javascript代码。然后该文件回显js内容。我正在使用iFrame访问此文件。但现在需要在不使用iFrame的情况下获取此JS代码。我正在考虑进行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 个答案:

答案 0 :(得分:1)

您必须匹配回调函数,请查看 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).")";