位置: 编程技术 - 正文

JS跨域解决方案之使用CORS实现跨域(js跨域解决方案有哪些)

编辑:rootadmin

推荐整理分享JS跨域解决方案之使用CORS实现跨域(js跨域解决方案有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js跨域的几种方法,js跨域请求有哪些方式,js 解决跨域,js 解决跨域,js 解决跨域,js跨域解决方案是什么,js跨域解决方案是什么,js跨域解决方案怎么写,内容如对您有帮助,希望把文章链接给更多的朋友!

引言

跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功之一。

  和大多数跨域的解决方案一样,JSONP也是我的选择,可是某天PM的需求变了,某功能需要改成支持POST,因为传输的数据量比较大,GET形式搞不定。所以折腾了下闻名已久的CORS(跨域资源共享,Cross-Origin Resource Sharing),这边文章也就是折腾期间的小记与总结。

&#;CORS能做什么:

正常使用AJAX会需要正常考虑跨域问题,所以伟大的程序员们又折腾出了一系列跨域问题的解决方案,如JSONP、flash、ifame、xhr2等等。

&#; CORS的原理:

CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问。CORS 允许一个域上的网络应用向另一个域提交跨域 AJAX 请求。实现此功能非常简单,只需由服务器发送一个响应标头即可。

下面我们步入正题具体详情如下所示:

跨站HTTP请求(Cross-site HTTP request)是指发起请求的资源所在域不同于请求指向的资源所在域的HTTP请求。

比如说,我在Web网站A(www.a.com)中通过<img>标签引入了B站的资源(www.b.com/images/1.jpg),那么A站会向B站发起一个跨站请求。

这种图片资源的跨站请求是被允许的,类似的跨站请求还有CSS文件,JavaScript文件等。

但是如果是在脚本中发起HTTP请求,出于安全考虑,会被浏览器限制。比如,使用 XMLHttpRequest 对象发起 HTTP 请求就必须遵守 同源策略。

所谓“同源策略”是指Web应用程序只能使用 XMLHttpRequest 对象向发起源所在域内发起HTTP请求,这个请求源和请求对象必须在一个域内。

举例来说, 同源

JS跨域解决方案之使用CORS实现跨域(js跨域解决方案有哪些)

&#; 不同源(协议不同)

&#; 不同源(域名不同)

&#; 不同源(域名不同)

&#; 不同源(端口不同)

为了开发出更强大,更丰富的Web应用,跨域请求是很常见的,那么如何在不舍弃安全的情况下进行跨域请求呢?

W3C推荐了一种新的机制,即跨源资源共享(Cross-Origin Resource Sharing (CORS))。

跨源资源共享(CORS)是通过客户端+服务端协作声明的方式来确保请求安全的。服务端会在HTTP请求头中增加一系列HTTP请求参数(例如Access-Control-Allow-Origin等),来限制哪些域的请求和哪些请求类型可以接受,而客户端在发起请求时必须声明自己的源(Orgin),否则服务器将不予处理,如果客户端不作声明,请求甚至会被浏览器直接拦截都到不了服务端。服务端收到HTTP请求后会进行域的比较,只有同域的请求才会处理。

一个使用CORS实现跨域请求的示例:

客户端:

服务端:

在Web API中启用跨域访问

CORS是服务端和客户端协作声明来确保请求安全的,因此,如果需要在Web API中启用CORS也需要进行相应配置。好在微软的ASP.NET团队提供了官方的支持跨域的解决方案,只需要在NuGet中添加即可。

然后在App_Start/WebApiConfig.cs进行如下配置即可实现跨域访问:

由于IE以下浏览器不支持CORS,所以目前在国内CORS并不是主流的跨域解决方案,但是随着windows 的发布,IE的逐渐衰落,可以预见,在不远的将来CORS将成为跨域的标准解决方案。

以上所述是小编给大家介绍的JS跨域解决方案之使用CORS实现跨域,希望对大家有所帮助!

js贪吃蛇游戏实现思路和源码 本文实例为大家分享了js贪吃蛇游戏的相关代码,供大家参考,具体内容如下!DOCTYPEhtmlhtmllang="en"headmetacharset="UTF-8"title贪吃蛇小游戏/titlestyle*{margin:0;paddin

基于JS实现移动端访问PC端页面时跳转到对应的移动端网页 不想通过CSS自适应在PC端和移动端分别显示不同的样式,那么只能通过在移动端访问PC端网页时跳转到对应的移动端网页了,那么怎么跳转呢,网上也有

javaScript数组迭代方法详解 本文为大家介绍了javaScript数组迭代方法,供大家参考,具体内容如下每个方法都接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作

标签: js跨域解决方案有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/373439.html 转载请保留说明!

上一篇:Bootstrap 中下拉菜单修改成鼠标悬停直接显示 原创(bootstrap 下拉按钮)

下一篇:js贪吃蛇游戏实现思路和源码(js写贪吃蛇什么水平)

  • 什么是应付职工薪酬设定提存计划
  • 留抵税额是什么意思啊
  • 应税工资怎么计算出来的
  • 购入国内旅客运输服务
  • 个税在资产负债表中体现吗
  • 国际货运代理企业应当遵循哪些原则
  • 代订餐如何赚钱
  • 房地产开发的会计处理
  • 个税里任职受雇从业类型
  • 住宿费取得增值税专用发票,抵扣进项税额如何计算
  • 本年利润结转在贷方表示什么意思
  • 清包工一般纳税人简易计税能开专票
  • 网上银行 电子回单
  • 增值税金内部结算方式
  • 政府补助计入资本公积是老准则吗
  • 旅游合同签订
  • 民办教育培训机构申请条件
  • 事业单位没有税号 选个人可以吗
  • 加计扣除两种情况
  • 年薪制与月薪制的优与劣
  • 建筑工程预收款开票会计分录
  • 买车的增票可以分两次吗
  • 无形资产摊销方法应当反映其经济利益
  • 批发led电子屏
  • 企业所得税季度预缴可以弥补以前年度亏损吗
  • 允许扣除的土地价款怎么计算例题
  • 安全中心总是弹出来
  • 没有收入业务招待费要全额调增吗
  • 应收应付款有零头怎么处理
  • 研发费加计扣除申报表怎么填
  • php写post接口
  • kb4499164安装失败怎么办
  • 购买商场储值卡能退么?
  • 收到汇算清缴退税账务处理
  • 应交增值税的完整计算公式是什么
  • 营业利润,利润总额的计算公式是
  • hook execution failed
  • 会计分录的基本构成要素
  • 前端和后端到底是什么
  • 个人出售二手房要交增值税吗
  • 实收资本(或股本)是什么意思
  • 减免税款月末怎么结转
  • 房地产企业税负低如何向税务局解释
  • 收到的赠品怎么做分录
  • phpcms添加内容
  • 劳务公司社保手续办理
  • 无偿划转股权涉税
  • 防暑降温费用发放标准
  • 员工实际工资
  • 收到小微企业退税怎么做账
  • 医疗机构销售药品能否加价
  • 固定资产盘盈为什么计入盈余公积
  • 资产负债表一般由什么组成
  • 幼儿园财务科目明细表
  • 注销退税后又补税了
  • 小规模纳税人购车是怎么抵税的
  • 物流公司的修理工资高吗
  • 税务自查补缴税款怎么办
  • 子公司向子公司销售存货
  • 农业技术人员是什么意思
  • 换工作后个税app单位会自动更改吗
  • 投资收益怎么做帐
  • 企业在销售过程中支付的消费税应通过什么账户进行核算
  • mysqladmin ping
  • 配置是什么意思
  • ubuntu 无法正常启动
  • centos6 docker
  • windows关机音乐
  • Win7安全模式怎么切换到正常模式
  • Linux安装完mysql后提示错误无法登陆mysql怎么办?
  • cocos2dx引擎优化
  • python指令生成脚本
  • EasyTouch Broadcast messages选项在js和c#下的用法
  • 深入JavaScript高级语法
  • 云南省税务局网址
  • 四川增值税发票查验平台
  • 深圳龙华区税务局大浪税务所电话
  • 税收负担与税负转嫁
  • 税务报道是干什么
  • 保税区社会车辆能进吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设