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

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

来自版块: 站长杂谈发表于: 2015-8-8 23:40:13
46819
0
如本资源下载地址失效,请点击此处进行反馈
开通本站Svip会员,全站资源免费下
这个问题跟ECSHOP的关系不是很直接,一般用户用不到。
4 d  E: R/ M7 J% d# [8 P5 m- h7 h0 N7 _+ O3 x- B; T0 i6 O% z4 F
只是对于高级用户可能会有点帮助,举例说明:2 d6 ^. {6 I0 \: T5 T; ~
! T% }. v3 U6 N3 F9 a' P
比方两个ECSHOP网站拥有不同域名,位于不同服务器上,双方之间又不能直连数据库的前提下,两个网站之间如果想共享订单数据。
. ?. e* T3 k# {, ?3 i/ A' P9 P那么也许可以使用 $.getJSON 来解决。
. A& A) s" O% a3 Q5 l
6 |6 u& s; ~0 l/ ~6 ktest.php,在 www.eshop.com  根目录中
5 C! t1 [$ H9 h4 C8 i7 E3 s) utest.php代码: ! p8 h6 K: ^6 y
PHP代码
0 ~* V5 y; ]$ f2 b" W
<?php   
4 d! Y3 l5 I0 \# J& ?    $dal=$_GET['callback'];   
5 c7 r. _" i* ?8 j4 d4 x    $arr=array("name"=>"4nail", "age"=>20);   $ X" M+ C5 v8 ]8 q; C
    $jarr=json_encode($arr);   - T/ E( M" c/ R2 _" \7 E+ x
    echo $dal.'('.$jarr,')';   1 B9 Y/ n- V) W0 J
?>

+ n% J/ F6 e/ P3 I5 ]5 ptest.htmlwww.ecshop120.com 根目录下
test.html代码如下:
Html代码 : m) ?3 D! C# n8 y0 \  V
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   % K% h2 B; {. I7 [9 B7 {; h
<html xmlns="http://www.w3.org/1999/xhtml">   
! v3 F" Z4 L. v/ {<head>   8 s7 ]8 O" s; D
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />   
5 n& v, r6 Q% ^. _<title>无标题文档</title>   
  u' ~3 _8 _% D2 \& z+ Z<script language="javascript" type="text/javascript" src="Scripts/jquery.min.js"></script>   4 m2 j; w& E$ ]1 J+ A
<script type="text/javascript">   8 W) _, n1 F3 O
    $(function(){   
0 |( U) w, J1 o! j  I6 U        $("#test").click(function(){   
  [/ a* |' m7 @: W! k+ R! r            $.getJSON("http://www.ecshop.com/test.php?callback=?",function(data){   
: a, i' K( A1 A, W                alert(data.name);                              1 o# E9 V* C, |6 U8 N) A
            });                     
3 ]+ R" k8 ^) R7 e4 \! Q        });   
3 z( B* y  f+ W5 @6 y2 e    });   
3 v2 h- P: V& @  I6 h1 B1 z; f</script>   & t3 l+ g' z! G
</head>   
$ p) h0 v' \) P0 N& q& Z% Y) A   1 x% \5 h% i6 s5 l- {0 ]
<body>   
+ n( v1 Y. P* C  r6 j0 N<div style="width:100px;height:100px;background-color:#F00" id="test">点击跨域加载</div>  
6 \4 {  ]3 X9 F& i9 k6 A( m" ]</body>   % I" G6 z9 `- E5 l9 c3 H0 Y; l6 i' {
</html>

- |- S3 c3 D2 w& P# B
- {1 @) K: E% y/ ^
/ I5 r9 ?; U4 S0 N6 s: V
关键的一点在于 在$.getJSON()中的url参数末尾要加个callback=?     
8 O% K' I- T0 |( e# m# N1 F) {* G不一定非叫 callback,也可以自定义其他的名称,在test.php文件中,改相应的名称,就ok啦!
3 x. g7 ]/ T7 u5 n在输出 json 数据时,必须要加上 $_GET['callback'] 和两个括号,就像下面这样 ' F/ ]6 a+ @! Z+ G# y
echo $dal.'('.$jarr,')';z
+ R# c1 D3 ^9 m* A8 ]* s

全部评论 0

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