用Jquery的getJSON实现两网站之间跨域读取-站长杂谈下载

用Jquery的getJSON实现两网站之间跨域读取

开通本站Svip会员,全站资源免费下
这个问题跟ECSHOP的关系不是很直接,一般用户用不到。
/ Q7 E' g7 H) |- L% }" L' I& F
- z3 o8 v2 j$ s8 s6 V只是对于高级用户可能会有点帮助,举例说明:
% o6 Y5 g" O) |' n* q& X
8 q- l, ?! i. n0 V' o5 k+ b比方两个ECSHOP网站拥有不同域名,位于不同服务器上,双方之间又不能直连数据库的前提下,两个网站之间如果想共享订单数据。
7 f0 k6 N) {( S0 t( U; H那么也许可以使用 $.getJSON 来解决。
9 o( Y: @& S! V& r" O/ D. |  M3 H0 w% F0 _" M
test.php,在 www.eshop.com  根目录中
0 W+ J3 }3 a6 [  x: a1 Otest.php代码:
7 f. s  R* c+ D6 ~PHP代码. a. \. w- h9 W$ A2 z! y2 ]* S9 D$ m. w
<?php   ; F) l3 F4 x# w- k) q$ I) `
    $dal=$_GET['callback'];   
( l& [4 I3 V4 u* D7 [) U, Q# _' q    $arr=array("name"=>"4nail", "age"=>20);   . }8 {4 o, F7 b/ K2 ?
    $jarr=json_encode($arr);   4 M! b2 K& B" e1 |4 M+ R8 h! Q; z; @
    echo $dal.'('.$jarr,')';   4 F6 ?3 ^# \! I, t, [% Z' s1 _
?>
- Q4 p. _& }. [! x
test.htmlwww.ecshop120.com 根目录下
test.html代码如下:
Html代码
9 U6 b" Y8 E7 [: \' u6 n6 e/ v) Z9 b5 z
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   % c# ^: b' u% i( j2 H* ]5 {( A
<html xmlns="http://www.w3.org/1999/xhtml">   
6 O! W3 X9 R. N. ~# ~/ _8 q<head>   7 @0 ]; X; x# J" }. J4 _) B
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />   + L$ J6 l! x, j: d$ D6 R2 V( T) g
<title>无标题文档</title>   9 A; _( T, y! g; v' f; u3 r
<script language="javascript" type="text/javascript" src="Scripts/jquery.min.js"></script>   
9 x! c$ n8 v/ b6 f$ s; g/ y<script type="text/javascript">   ! t# g9 D0 O& \* r% p/ r
    $(function(){   % f& Y0 r) G# g& c8 w
        $("#test").click(function(){   
0 o9 x; O, B5 {3 Q4 X/ N7 ~            $.getJSON("http://www.ecshop.com/test.php?callback=?",function(data){   1 ?4 R1 i, ^7 a
                alert(data.name);                              9 ^( q% K+ ]" B2 O4 F! d
            });                     
  h  @' {) l( w        });   4 m5 H: n% z, X% L  i' H8 ?; `( F
    });   
( p7 \0 L, G8 K  i</script>   - e& Z/ T9 i6 X6 @
</head>   
- X, I' B& }8 H2 ?5 x: R   ' h  R* {( K! ?1 y. U4 T4 D
<body>   , d* `5 N& I6 k+ p4 H7 [3 o
<div style="width:100px;height:100px;background-color:#F00" id="test">点击跨域加载</div>  % l" @% j; K' ?
</body>   , C: R' `6 L5 P6 y) w3 p0 ^, |7 W
</html>

( A; p8 Q" L6 {1 _! ~
$ B9 w- J7 {4 L

6 y/ Z# D* c# {4 E% X关键的一点在于 在$.getJSON()中的url参数末尾要加个callback=?     4 {! A3 E' h# r  A' q4 J
不一定非叫 callback,也可以自定义其他的名称,在test.php文件中,改相应的名称,就ok啦!
* d" _! T2 }6 b! C& t) q* T3 q在输出 json 数据时,必须要加上 $_GET['callback'] 和两个括号,就像下面这样
( v& L, `  |0 p2 J, n' f$ o6 B% pecho $dal.'('.$jarr,')';z
- N( J2 m& |7 D. ^

全部评论 0

您需要登录后才可以回帖 立即登录
登录
0
0
0
返回顶部