什么是跨域访问
在A网站中,我们希望使用Ajax来获得B网站中的特定内容。如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。你可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安全的。跨域访问违反了同源策略,
同源策略规定,浏览器的ajax只能访问跟它的HTML页面同源(相同域名或IP)的资源。
跨域访问解决
Apache
Nginx
Access-Control-Allow-Origin:* 表示允许任何域名跨域访问。
扩展
你还可以动态配置跨域方案
不改动服务配置跨域解决
如果需要指定某域名才允许跨域访问,只需把Access-Control-Allow-Origin:*改为Access-Control-Allow-Origin:允许的域名,例如:
如果需要设置多个域名允许访问,那么把多个域名放在数组中就可以,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php $ret = array( 'name' => isset($_POST['name'])? $_POST['name'] : '', 'gender' => isset($_POST['gender'])? $_POST['gender'] : '' ); header('content-type:application:json;charset=utf8'); $origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array( 'https://www.uedbox.com', 'https://www.uedbox.com' ); if(in_array($origin, $allow_origin)){ header('Access-Control-Allow-Origin:'.$origin); header('Access-Control-Allow-Methods:POST'); header('Access-Control-Allow-Headers:x-requested-with,content-type'); } echo json_encode($ret); ?> |
至此,No 'Access-Control-Allow-Origin'问题解决!
版权说明:若无特殊注明,转载请保留文章出处
文章分类:
字数统计:本文共有 4468 个
本文链接:http://www.poxiaowy.com/?post=19
文章分类:
字数统计:本文共有 4468 个
本文链接:http://www.poxiaowy.com/?post=19