在做项目的时候,我们有时候希望能够可以跨域进行请求,但是ajax访问php接口的时候,通常会报一个错误:

Failed to load 你的网址/test.php: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

这种情况解决起来也非常的简单,我们只需要给php的文件加一个header头就可以了。

header("Access-Control-Allow-Origin: *"); // 表示允许任何域名进行访问

当然我们还可以进行域名的限定,只允许特定的域名进行访问

header("Access-Control-Allow-Origin:http://dedecms.sj.com");

另外我们还可以设置,允许的请求是get、post等

// 响应类型

header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");

// 响应头设置

header('Access-Control-Allow-Headers:x-requested-with,content-type');

补充:

何为跨域请求呢?大致可分为如下几种情况

A.abc.com 发起一个到 abc.com/B 的ajax请求,也会有跨域的问题。之所以会有跨域问题,实则是因为www.abc.com其实同A.abc.com一样,也是一个二级域名,而非一级域名(一级域名是http://abc.com)

对于是否允许跨域,更详细的说明可以看下表:

URL

说明

是否允许通信

http://www.a.com/a.js

http://www.a.com/b.js

同一域名下

允许

http://www.a.com/lab/a.js

http://www.a.com/script/b.js

同一域名下不同文件夹

允许

http://www.a.com:8000/a.js

http://www.a.com/b.js

同一域名,不同端口

不允许

http://www.a.com/a.js

https://www.a.com/b.js

同一域名,不同协议

不允许

http://www.a.com/a.js

http://170.32.82.74/b.js

域名和域名对应ip

不允许

http://www.a.com/a.js

http://script.a.com/b.js

同一域名,不同二级域名

不允许

http://www.a.com/a.js

http://a.com/b.js

二级域名和一级域名

不允许(cookie这种情况下也不允许访问)

http://www.b.com/a.js

http://www.a.com/b.js

不同域名

ajxs跨域 php_php设置header头允许ajax跨域请求相关推荐

  1. ajxs跨域 php_PHP项目中是如何处理Ajax请求与Ajax跨域的

    PHP项目中是如何处理Ajax请求与Ajax跨域的 发布时间:2020-12-14 16:35:47 来源:亿速云 阅读:98 这期内容当中小编将会给大家带来有关PHP项目中是如何处理Ajax请求与A ...

  2. jq中ajax请求跨域,用JQuery实现简单的Ajax跨域请求

    前一阵发过一篇利用ExtJs的ScriptTagProxy实现Ajax跨域请求的文章,这几天看了一下Jquery,发现如果用JQuery中的getScript其实更简单(jquery 1.2.6版本) ...

  3. 转载 - 通过设置P3P头来实现跨域访问COOKIE

    作者:老王 网上看了别人介绍的一片文章,说使用P3P可以完成跨域COOKIE操作,感觉很COOL,不过没有提供源代码,我胡乱写了一下,大家看看. 实际工作中,类似这样的要求很多,比如说,我们有两个域名 ...

  4. PHP 通过设置P3P头来实现跨域访问COOKIE

    我的是CentOS的系统(Linux 内核) 编辑HOST vi /etc/hosts 加入 127.0.0.1        www.a.com 127.0.0.1        www.b.com ...

  5. nginx 获取header 请求参数_Nginx设置Header头信息

    Nginx 使用 ngx_headers_more 模块来增加.删除出站.入站的 Header 信息. ngx_headers_more 项目主页 默认该模块没有加入到 Nginx 的源码中,要想使用 ...

  6. php设置header头实现将视频下载到客户端

    <?php // 告知文件类型,可以不写 header( "Content-Type: video/mp4" ); // attachment表明需要下载,filename是 ...

  7. php跨域访问java,案例:PHP Ajax 跨域最佳解决方案

    本文通过设置Access-Control-Allow-Origin来实现跨域. 例如:客户端的域名是edu.jb51.net,而请求的域名是edu.jb51.net. 如果直接使用ajax访问,会有以 ...

  8. js调用文件服务器出现跨域,js 读取本地文件遇到ajax跨域问题

    环境:win10 语言:js 对象:easyUI SKD demo 级别:小小白级 本篇博文记录博主从js小小白的进化历程,下述问题对老鸟来说再简单不过,但是作为新手一定会经历这样的阶段,所以还是分享 ...

  9. python flask跨域_Flask框架踩坑之ajax跨域请求实现

    Python flask ajax 请夜影驱动编程小编今天和大家分享后端并且能获得数据,但是...@app.route('/search',methods=[ 'POST']) def search( ...

最新文章

  1. Anaconda安装及第一个py程序
  2. ITK:演示所有运算符
  3. 倒计时 | 7.24 阿里云 Serverless Developer Meetup 杭州站报名火热进行中!
  4. 红旗linux 进不去图形界面,进不了红旗Linux6.0的图形界面请高手帮忙
  5. java找出两个List集合的重复项
  6. 性能调优从哪方面入手?
  7. react native 组件汇总整理,点击链接至GitHub
  8. 初试 spring web mvc
  9. 如何在繁忙的工作中锻炼身体?
  10. 从今天开始 好好规划自己
  11. Atitit.软件开发的几大规则,法则,与原则Principle v5 1.1. 修改历史 2 2. 设计模式六大原则 3 2.1. 设计模式六大原则(1):单一职责原则 3 2.2. 设计模式六
  12. [CTF]盲文对照表
  13. MK802与外部硬件设备的通讯
  14. stm32毕业设计 单片机火灾报警系统
  15. ServiceMesh实战-服务网格是什么?
  16. Linux配置ntp时间同步
  17. 用Ultra-Light-Fast-Generic-Face-Detector-1MB寻找人眼
  18. 【其他系列】走出舒适圈
  19. Egg http proxy
  20. pr怎样制作遮罩,premiere怎样制作圆形遮罩

热门文章

  1. 学习方法之01高效学习方程式,你的学习到底是哪里出了问题
  2. 清洗弹幕数据,去不相关的列和空值,MapReduce
  3. 利剑无意之JAVA面试题(二)
  4. Storm 03_Storm 架构设计
  5. leetcode 475. Heaters | 475. 供暖器(找最后一个不大于target的值/第一个不小于target的值)
  6. leetcode 64. 最小路径和(递归 / 动态规划解法图解)(Java版)
  7. 汇编语言 【大练习】寻址方式在结构化访数据访问中的应用
  8. 怎么break java8 stream的foreach
  9. Leet Code OJ 66. Plus One [Difficulty: Easy]
  10. 容器学习 之 扩展镜像(五)