ajax跨域的解决办法_前端跨域解决方案

ajax跨域的解决办法_前端跨域解决方案什么是AJAX?AJAX是无需刷新页面就能够从服务器去的数据的一种方法,负责Ajax运作的核心对象是XMLHttpRequest(XHR)对象。同源策略是对XHR的一个主要约束,它为通信设置了“相同的域、相同的端口、相同的协议”这一限制。试图访问上述限制之外的资源都会引发安全错误,除非采用被认可的跨域解决方案。这个方案叫做CORS(Cross-OriginResource

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

什么是AJAX?

AJAX 是无需刷新页面就能够从服务器去的数据的一种方法,负责Ajax运作的核心对象是XMLHttpRequest(XHR)对象。

同源策略是对XHR的一个主要约束,它为通信设置了“相同的域、相同的端口、相同的协议”这一限制。
试图访问上述限制之外的资源都会引发安全错误,除非采用被认可的跨域解决方案。

这个方案叫做CORS(Cross-Origin Resource Sharing)跨源资源共享。

哪些访问属于跨域?

三种解决方案:

  • 方案一:

    //弊端:存在浏览器兼容的问题

    ajax跨域的解决办法_前端跨域解决方案

    AJAX 跨域解决方案 – CORS

    需要被请求方的服务端设置: Access-Control-Allow-Origin

    切记:Access-Control-Allow-Origin 不可设置为 * ,设置为可访问的域名。

//设置可供访问的白名单
$white_list = ['http://cdn.abc.com','http://abc.com'];

$_SERVER['HTTP_ORIGIN'] //表示请求方的域名

$http_origin = '';
if (!empty($_SERVER['HTTP_ORIGIN']) && in_array($_SERVER['HTTP_ORIGIN'],$white_list)) {
    $http_origin = $_SERVER['HTTP_ORIGIN'];

    //设置 header 信息
    header("Access-Control-Allow-Origin: {$http_origin}");
    header("Access-Control-Allow-Methods", "POST,GET");
    header('Access-Control-Allow-Credentials:true');  //允许访问Cookie
    header('Access-Control-Allow-Headers : X-Requested-With'); //设置Headers
}
//执行代码逻辑...

另:如果请求的是html,在文件里加上meta标签。

<meta http-equiv="Access-Control-Allow-Origin" content="*">

  • 方案二:

    //弊端:不支持 POST 请求。

    使用 JSONP 进行解决跨域问题,网上文章蛮多的。

  • 方案三:

    与方案一类似。

    修改Nginx Apache 配置:

//Nginx

http {
  ......
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Headers X-Requested-With;
  add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
  ......
}

Apache :

<Directory />
    ......
    Header set Access-Control-Allow-Origin *
</Directory>

大家可以根据自己的情况进行选择方案。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172575.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 云夜卡社区系统总控源码_云夜卡社区源码

    云夜卡社区系统总控源码_云夜卡社区源码介绍:1.购买服务器安装宝塔2.添加站点php5.63.上传源码解压【解压出4个目录】4.再次添加3个站点【不添加数据库和ftp】5.每个站点对应一个源码目录6.配置文件和伪静态7.访问控制端域名/admins8.配置主站域名添加主站9.访问主站域名/admin分销:域名/fenxiao总控:域名/admins主站:域名/admin分站:域名/home用户:域名/user网盘下载地址:http://kekewangLuo.net/WL6ONV5KixK0图片:

    2022年8月12日
    12
  • ODA(Open Design Alliance)介绍「建议收藏」

    ODA(Open Design Alliance)介绍「建议收藏」注:与autocad兼容的软件,大部分基于Intellicad,另外刚冒出一个bricscad,天河的PCCADV10就是基于bricscad,bricscad是用ODA的库开发的,而开发brics

    2022年8月6日
    7
  • Windows 强制删除文件及文件夹命令「建议收藏」

    Windows 强制删除文件及文件夹命令「建议收藏」一、删除文件或目录CMD命令rd/s/q盘符:\某个文件夹  (强制删除文件文件夹和文件夹内所有文件)del/f/s/q盘符:\文件名  (强制删除文件,文件名必须加文件后缀名)二、删除文件或目录BAT命令1、新建.BAT批处理文件输入如下命令,然后将要删除的文件拖放到批处理文件图标上即可删除。DEL/F/A/Q RD/S/Q …

    2022年6月1日
    50
  • 配置管理小报100127:端口

    配置管理小报100127:端口

    2021年8月25日
    71
  • 【参赛作品29】基于openGauss数据库设计人力资源管理系统实验「建议收藏」

    【参赛作品29】基于openGauss数据库设计人力资源管理系统实验「建议收藏」本文作者:瓜西西本文主要面向openGauss数据库初学者,帮助初学者完成一些简单的数据库管理以及GUI,设计一个简单的人力资源管理系统。本文只包含部分代码,读者需要结合自己的数据库弹性公网、数据库用户及其密码等自身信息做出相应的修改。一、实验环境使用程序:putty.exe;IntelliJIDEA2021.1.1;apache-tomcat-9.0.46服务器名称:ecs-d8b3弹性公网:121.36.79.196端口号:26000表空间名:human_resource_

    2022年5月24日
    38
  • 风控模型的基础知识

    风控模型的基础知识风控模型根据设定的y变量与可获得的x变量不同,大致可以分为三类:即A卡,B卡,C卡。今天就让我们聊聊三者的区别。1、A卡(Applicationscorecard)A卡即申请评分模型,此类风控模型的目的在于预测申请时点(申请信用卡、申请贷款)未来一定时间内逾期的概率。Y变量的设定观察点为申请时点,定义为表现期内是否逾期。X变量一般只有客户填写的申请书信息,加上外部查询的数据与征信报告。2、B卡(Behaviorscorecard)B卡即行为评分模型,此类风控模型的目的在于预测使用时点(获得贷

    2022年5月30日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号