欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP、AJAX、JSONP实现跨域请求使用的代码实例

程序员文章站 2022-05-28 20:12:23
今天我写的是PHP AJAX JSONP使用的实例。不清楚jsonp是什么的请自己搜索 实例1 test.html [html] view plain copy

今天我写的是PHP AJAX JSONP使用的实例。不清楚jsonp是什么的请自己搜索

实例1

test.html

[html] view plain copy

<!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>  

</body>  

</html>  

ajax.js

[javascript] view plain copy

$.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] view plain copy

<?php  

$data = ".......";  

$callback = $_GET['callback'];  

echo $callback.'('.json_encode($data).')';  

exit;  

?>  

jquery-1.5.2.min.js

自己上网下载

当使用jsonp时,使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

实例2

test.html

[html] view plain copy

<!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

[javascript] view plain copy

$(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] view plain copy

<?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 .')';  //返回格式,必需  

?>  

jquery-1.5.2.min.js

自己网上下载

在之前我写过“php返回json数据简单实例”,“php返回json数据中文显示的问题”和“在PHP语言中使用JSON和将json还原成数组”。有兴趣的童鞋可以看看

今天我写的是PHP AJAX JSONP使用的实例。不清楚jsonp是什么的请自己搜索

实例1

test.html

[html] view plain copy

<!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>  

</body>  

</html>  

ajax.js

[javascript] view plain copy

$.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] view plain copy

<?php  

$data = ".......";  

$callback = $_GET['callback'];  

echo $callback.'('.json_encode($data).')';  

exit;  

?>  

jquery-1.5.2.min.js

自己上网下载

当使用jsonp时,使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

实例2

test.html

[html] view plain copy

<!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

[javascript] view plain copy

$(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] view plain copy

<?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 .')';  //返回格式,必需  

?>  

jquery-1.5.2.min.js