$.ajax({
type :
"post"
,
url :
"ajax.php"
,
dataType :
"jsonp"
,
jsonp:
"callback"
,
//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonpCallback:
"success_jsonpCallback"
,
//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
success :
function
(json){
alert(
'success'
);
},
error:
function
(){
alert(
'fail'
);
}
});
ajax.php
<?php
$data
=
"......."
;
$callback
=
$_GET
[
'callback'
];
echo
$callback
.
'('
.json_encode(
$data
).
')'
;
exit
;
?>
例子
test.html
<!
doctype
html>
<
html
>
<
head
>
<
meta
charset="utf-8">
<
title
>test</
title
>
<
script
src="jquery-1.5.2.min.js"></
script
>
<
script
src="ajax.js"></
script
>
</
head
>
<
body
>
<
form
name="form">
<
input
type="text" name="sex">
<
input
type="text" name="age">
<
input
type="button" id="btn" value="button" />
</
form
>
</
body
>
</
html
>
ajax.js
$(document).ready(
function
(){
$(
"#btn"
).click(
function
(k) {
//...
var
j = $(
"form"
).serializeArray();
//序列化name/value
$.ajax({
type:
'GET'
,
//这里用GET
url:
'ajax.php'
,
dataType:
'jsonp'
,
//类型
data: j,
jsonp:
'callback'
,
//jsonp回调参数,必需
async:
false
,
success:
function
(result) {
//返回的json数据
alert(result.message);
//回调输出
result = result || {};
if
(result.msg==
'err'
){
alert(result.info);
}
else
if
(result.msg==
"ok"
){
alert(
'提交成功'
);
}
else
{
alert(
'提交失败'
);
}
},
timeout: 3000
})
//...
});
});
ajax.php
<?php
$callback
= isset(
$_GET
[
'callback'
]) ? trim(
$_GET
[
'callback'
]) :
''
;
//jsonp回调参数,必需
$date
=
array
(
"age"
=>
$_GET
[
'age'
],
"message"
=>
$_GET
[
'age'
]);
$date
[
"msg"
]=
"err"
;
$date
[
"info"
]=
"因人品问题,发送失败"
;
$tmp
= json_encode(
$date
);
//json 数据
echo
$callback
.
'('
.
$tmp
.
')'
;
//返回格式,必需
?>