这个问题跟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.html在 www.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. ^ |