Heim > php教程 > PHP源码 > Hauptteil

PHP JSONP跨域实现程序详解

WBOY
Freigeben: 2016-06-08 17:23:58
Original
988 Leute haben es durchsucht

在网站开发中跨域是一个头痛的事情,我经常要需要解决各种跨域问题,今天我来介绍在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.就可以看到效果了

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage