ajax跨域问题
getScript 与 getJSON的用法
1、由于存在跨域的问题,不能使用ajax/post/get方法,于是找到了getScript 用法: jQuery.getScript("http://xxxx/xx.php?param1=value1¶m2=value2", function(){ alert(data.name); }); } xx.php: $arr=array("name"=>"xiaohong", "age"=>20); print 'var data = ' . json_encode($arr);
返回一段js代码,定义一个data变量,赋值要返回的json数据。
2、由于getScript在IE下有一些BUG,或者说效率问题。把服务器整崩溃了~~于是又使用了getJSON
用法1:和getScript一样的用法.区别只是回调函数有个参数返回值 jQuery.getJSON("http://xxxx/xx.php", function(data){ alert(data.name); }); xx.php: $arr=array("name"=>"xiaohong", "age"=>20); print json_encode($arr); 这样存在一些问题,就是IE下会有安全提示。而非IE则完全显示不出。于是使用了callback 用法2: 加入了callback jQuery.getJSON("http://xxxx/xx.php?jsoncallback=?", function(data){ alert(data.name); }); xx.php: $arr=array("name"=>"xiaohong", "age"=>20); print $_GET['jsoncallback']."(".json_encode($arr).")"; 以jsoncallback作为函数名返回数据。问题解决。
demo依然参考 dsqq.cn 如果大家有更好的解决办法,还请发邮件与我交流 it@spinshine.com
返回一段js代码,定义一个data变量,赋值要返回的json数据。
2、由于getScript在IE下有一些BUG,或者说效率问题。把服务器整崩溃了~~于是又使用了getJSON
用法1:和getScript一样的用法.区别只是回调函数有个参数返回值 jQuery.getJSON("http://xxxx/xx.php", function(data){ alert(data.name); }); xx.php: $arr=array("name"=>"xiaohong", "age"=>20); print json_encode($arr); 这样存在一些问题,就是IE下会有安全提示。而非IE则完全显示不出。于是使用了callback 用法2: 加入了callback jQuery.getJSON("http://xxxx/xx.php?jsoncallback=?", function(data){ alert(data.name); }); xx.php: $arr=array("name"=>"xiaohong", "age"=>20); print $_GET['jsoncallback']."(".json_encode($arr).")"; 以jsoncallback作为函数名返回数据。问题解决。
demo依然参考 dsqq.cn 如果大家有更好的解决办法,还请发邮件与我交流 it@spinshine.com