使用jQuery的getJson进行跨域提取数据

出于对安全问题的考虑,Ajax应用中,浏览器默认是不支持跨域调用的。

使用实例:

客户端的js程序:

var url = "http://www.xxx.com/xxx.php?name=a"; jQuery.getJSON(url +"&jsoncallback=?", function(data){ alert(data); });

  注意这里调用的地址中jsoncallback=?是关键的所在!其中,符号会被Query自动替换成其他的回调方法的名称,具体过程和原理我们这里不理 会。我们关心的是jsoncallback=?起什么作用了?原来jsoncallback=?被替换后,会把方法名称传给服务器。我们在服务器端要做什 么工作呢?服务器要接受参数jsoncallback,然后把jsoncallback的值作为JSON数据方法名称返回,比如服务器是php,我们会这 样做

 

服务器端的程序:

 

$visitor = $_GET['name'];//接受参数 $msg = 'hello ' . $_GET['name'] . ', this is server B!'; echo $_GET['jsoncallback']. '(' .$msg . ')';

 

我们要注意两点:

1、 在请求地址里加上参数 jsoncallback=?

2、在服务端程序里把jsoncallback的值和数据一起返回,如 $_GET['jsoncallback'].'('.$msg.')';

 

 

 

你可能感兴趣的:(javascript,getjson,jquery,服务器,function,url,ajax)