PHP开发小技巧①⑦—PHP实现跨域

原创 2017年12月15日 17:49:02

        由于项目需要,一些界面用HTML+CSS+Javascript实现,放入到不同的服务器中,还需要进行数据交互,这时就会出现请求失败,返回的信息如下:

             No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

        这是因为浏览器跨域策略起作用,阻止了跨域的请求。看看HTTP请求过程就知道。第一次请求后端时候,浏览器意识到是访问一个跨与资源,没有直接发送GET请求获取数据,而是发送了一个OPTIONS请求询问是否可以访问该资源。我们称之为Preflight请求,默认因为同源策略的存在,该请求返回的Header中没有'Access-Control-Allow-Origin'属性,所以访问失败。

        如果要实现跨域,关键在于服务器,客户端的代码按照正常的方式编写即可。对于服务器,只需要在收到OPTIONS请求的地方,返回的头信息中增加该属性即可,代码如下:

//允许所有域名发起的跨域请求
header('Access-Control-Allow-Origin: *');
//允许指定发起的跨域请求如:www.test.com
//header("Access-Control-Allow-Origin: http://www.test.com");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET, POST, PUT');

        此时即可实现跨域请求。。。

版权声明:转载时请标注http://blog.csdn.net/zhihua_w

php+ajax实现跨域单点登录

php和ajax具体实现单点登录。 在本次示例中我们需要两个站点: www.onmpw.com www.onmpw1.com 当然还有一个验证系统 www.SSOsite.com 为了实现...
  • Huangwenting1990
  • Huangwenting1990
  • 2016年09月14日 10:04
  • 1606

PHP实现跨域自动登录

很多时候多个域名共用了同一组用户数据,往往也想当其中的一个域名登录后可以快捷的进行另几个域名下自动登录而不用用户再登录一次。 大至可以分为两种情况:一种是一级域名相同,只是二级域名不同如 tes...
  • aerchi
  • aerchi
  • 2014年04月26日 09:31
  • 6285

Ajax+PHP实现跨域访问的两种方式

1.兼容IE浏览器的方法,在Ajax请求的时候使用jsonp: $("#search").click(function() { $.ajax({ type : "GET", ...
  • u014520745
  • u014520745
  • 2016年03月02日 10:20
  • 10236

PHP与h5 ajax 跨域上传图片解决方案

可能很多人会遇到一种很烦人的情况,那就是文件上传各种限制,参数设置,这里记录一下php与h5利用ajax上传图片。废话少说上代码:html页面的啦~ ...
  • qq_38714585
  • qq_38714585
  • 2017年12月06日 15:30
  • 156

php利用P3P头实现跨域设置cookie

在开发中,我们碰到的跨域主要还是纠结在IE,页面中的IFRAME或者FRAME或者JS跨域的时候,IE有安全策略限制页面不带cookie,但是如果我们加上P3P,就没有这策略的限制。这也是P3P来突破...
  • lhorse003
  • lhorse003
  • 2017年05月21日 21:40
  • 351

php 之跨域上传图片 (smallnews笔记)

因为要将所有上传的图片上传到一台独立的图片服务器上面,js上传时存在跨域问题,网上找到这种,通过php curl方式,将图片重新发送到另外一台服务器上保存,并返回图片路径! 这种方式存在一定...
  • u013537717
  • u013537717
  • 2016年02月17日 10:31
  • 2991

php设置允许跨域

代码: // 指定允许其他域名访问 header('Access-Control-Allow-Origin:*'); // 响应类型 header('Access-Control-All...
  • h5css3_linhuai
  • h5css3_linhuai
  • 2017年05月25日 13:02
  • 1433

基于jQuery的ajax跨域请求,PHP作为服务器端代码

基于jQuery的ajax跨域请求,PHP作为服务器端代码
  • hl582567508
  • hl582567508
  • 2017年03月09日 10:56
  • 1234

php 设置跨域访问

项目开发中配置跨域访问:        1.后端配置跨域访问时 如果在php代码和nginx 里 同时配置相同的origin了,会报错误 例: nginx配置 了 add_header 'Acce...
  • wei_shining
  • wei_shining
  • 2016年08月28日 16:28
  • 3916

PHP后端跨域HEADER头

header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With');
  • q1596948728
  • q1596948728
  • 2014年08月18日 11:12
  • 15728
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP开发小技巧①⑦—PHP实现跨域
举报原因:
原因补充:

(最多只允许输入30个字)