-
Jsonp 与 CORS跨域方式的区别
-
CORS方法更好一些,但是需要对服务器有自主权。JSONP则不需要对服务器有自主权,可以通过script、img等标签可以发送GET请求的特点,通过回调函数执行已有的JS函数。在函数内获取返回值。
-
CORS支持所有HTTP请求,JSONP只支持GET请求。
-
-
使用js实现跨域,利用jsonp方式
-
/ * 客户端 * / <script> /* 动态生成script标签前优先声明callback回调函数来接受回调数据 */ function test(data){ console.log(data); // {"user":"lee","passwd":"123"} } /* 动态生成script标签引用跨域脚本uri */ var script = document.createElment('script); script.type = 'text/javascript'; script.src = 'http://www.test.com/test.php?callback=test'; document.body.appendChild(script); </script> /* 跨域请求服务器端脚本 */ <?php $callback = $_GET['callback']; $str_data = json_encode(array('user'=>'lee','passwd'=>'123')); echo $callback.'('.$str_data.')'; // 将回调数据用自定义的callback函数名和括号包裹起来
-
php利用header函数配置CORS,利用CORS(Cross-origin resource sharing )方式实现跨域
<?php header("Access-Control-Allow-Origin:*"); // *号为允许所有域名,推荐修改成需要跨域的域名