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