Home > php教程 > PHP源码 > body text

PHP JSONP跨域实现程序详解

WBOY
Release: 2016-06-08 17:23:58
Original
987 people have browsed it

在网站开发中跨域是一个头痛的事情,我经常要需要解决各种跨域问题,今天我来介绍在php中利用JSONP跨域实现方法,各位J友可参考参考。

<script>ec(2);</script>


先看一个实例

 代码如下 复制代码


$("#btn").click(function(k) {
    //...
    var j = form.serializeArray();//序列化name/value
    $.ajax({
        url: "另一个域名/test.php",
        dataType: 'jsonp',
        data: j,
        jsonp: 'jsonp_callback',
        success: function(json) { //返回的json数据
           json = json || {};
            if (json.msg=='err'){
                alert(json.info);
            }else if (json.msg=="ok"){
                alert('提交成功');
            }else{
                alert('提交失败');
            }
        },
        timeout: 3000
    })
    //...
});


php部分:

 代码如下 复制代码
$jsonp_callback=$_GET['jsonp_callback'];
//...
//如果正确
echo $jsonp_callback,'({"msg":"ok"})';
5.//如果错误
echo $jsonp_callback,'({"msg":"err","info":"因人品问题,发送失败"})';

//...值得注意的是采用jsonp 方式,beforeSend / error 都不能用了,所以beforeSend里面用js实现的验证只能用ajax在服务器端test.php上面验证了。

域名下面有这么个html文件testjsonp.html:

代码如下:

 代码如下 复制代码

ldquo;-//W3C//DTD XHTML 1.0 Transitional//EN“ “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
 
 


     Untitled Page
     
     
    
 
 
 

注意,要真正运行上面的代码可能需要jquery的文件,你可以将

 代码如下 复制代码

改为你目录中jquery的文件路径:
如:

 代码如下 复制代码

然后,你可以再找个另外一个域名的web目录,将文件jsonp.php:

代码如下:

 代码如下 复制代码
$callback = $_GET[“callback“];
$a = array(
 'code'=>'CA1998',
    'price'=>'6000',
    'tickets'=>20,
    'func'=>$callback,
);
$result = json_encode($a);
echo “flightHandler($result)“;
exit;

放到这个目录下面去。这样就可以测试了。
直接在浏览器访问testjsonp.html.就可以看到效果了

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template