使用$.getJSON实现跨域ajax请求
发布时间:2020-12-16 19:49:47 所属栏目:百科 来源:网络整理
导读:jQuery中常用getJSON来调用并获取远程的JSON字符串,将其转换为JSON对象,如果成功,则执行回调函数。原型如下: jQuery.getJSON( url,[data],[callback] ) 跨域加载JSON数据。 url: 发送请求的地址 data : (可选) 待发送key/value参数 callback: (可选) 载
jQuery中常用getJSON来调用并获取远程的JSON字符串,将其转换为JSON对象,如果成功,则执行回调函数。原型如下:
jQuery.getJSON( url,[data],[callback] ) 跨域加载JSON数据。
- url: 发送请求的地址
- data : (可选) 待发送key/value参数
- callback: (可选) 载入成功时的回调函数
主要用于客户端获取服务器JSON数据。简单示例:
服务器脚本,返回JSON数据:
|
|
3
$arr = array ( "name" => "zhangsan" , "age" =>20); |
4
$jarr=json_encode( ); |
5
echo ; |
注意两点:第一:在返回客户端之前,先用PHP函数json_encode将要返回的数据进行编码。第二:返回到客户端用的是echo,而不是return。
下面是核心的客户端代码:
01
<script language= "javascript" type= "text/javascript" src= "./js/jquery.js" ></script> |
02
"text/javascript"> |
03
function getjs() |
04
{ |
05
$.getJSON( "$.getJSON.php" function (response){ |
06
alert(response.age); |
07
}); |
08
} |
09
|
10
<input type="button" name= "btn" id= value= "test" onClick= "javascript:getjs();" /> |
由于在PHP中是用JSON编码返回值,所以此处必须用getJSON去调用PHP文件,从而获取数据。同时可以注意到,经由getJSON得到的数据已经变成了一个对象数组,可以用response.name,response.age很直观的获取返回值。
jquery提供了$.getJSON的方法,让我们可以实现跨域ajax请求,但jqueryAPI上的内容实在太少,如何用$.getJSON,请求网站应该返回怎样的数据库才能让$.getJSON获取到,下面我就用一个实际例子来说明下。
/*预约登记 执行 接口*/
case"yuyue_interface"
:
$name
= trim(
$_GET
[
'name'
]);
$phone'phone'
]);
$addr'addr'
$dt
=
date
"Y-m-d H:i:s"
$cb
=
'callback'
];
if
(
==
""
||
== NULL){
$cb
.
"({code:"
.json_encode(1).
"})"
;
}elseif
11
.json_encode(2).12 |
13 |
.json_encode(3).14 |
else15 |
$db->execute( "insert into tb_yuyue (realname,telphone,danwei,dt,ischeck) values ('$name','$phone','$addr','$dt',0)" ); |
16
.json_encode(0).; |
17
} |
18
exit19 |
break; |
$(document).ready((){
varname =
;
phone ="phone"
//varchar类型,长度为11位
addr ="addr"
//varchar类型,长度最多为500位(250个汉字)
"http://请求网站地址/data.php?ac=yuyue_interface&name="+name+
"&phone="
+phone+
"&addr="
+addr+
"&callback=?"
(data){
(data.code==1){
//自定义代码
alert("姓名不能为空"
else
(data.code==2){
//自定义代码
"手机不能为空"(data.code==3){
"所在单位不能为空""预约成功"
20
}); |
21
}); |