怎样用jsonp实现跨域?

一、由于ajax的同源策略,故发送ajax请求不能实现跨域访问。后来开发者发现了另一途径可以实现跨域访问功能。它就是jsonp。

二、jsonp:主要依靠src身上自带的跨域功能,同时必须前后端同时支持才能实现。

三、实现步骤:

    1.定义全局回调函数。 

           function callback(data) {

                console.log(data);
           });

    2.动态创建script标签,指定请求地址,并在地址后面加上?和参数。

          var oScript = document.createElement('script');

          oScript.src = 'http://127.0.0.1/news.php?cb=callback';  

    :后台操作,对于PHP:

            $cb = $_GET['cb'];       echo $cb.'('.json_encode($data).')';    //其实就是执行了回调函数

扫描二维码关注公众号,回复: 2283447 查看本文章

四、扩展

    CORS跨域:它是w3c的标准跨域,即‘跨域资源共享’。它发送的还是XHR请求,克服了ajax只能同源的局限。

        注:cors跨域cookie不会一起发送,必须另行设置

        实现方式在服务器端指定Access-Control-Allow-Origin头信息。*代表允许所有地址发来的请求。

    

cors和jsonp的区别

   1>jsonp支持所有的浏览器,cors有浏览器兼容问题。

   2>jsonp只支持get请求,CORS支持所有类型的HTTP请求。


   <~~觉得实用请点赞,让爱继续传递!~~>

猜你喜欢

转载自blog.csdn.net/jasonson__/article/details/79595375