位置: 编程技术 - 正文

跨域请求的完美解决方法(JSONP, CORS)(跨域请求的三种方法)

编辑:rootadmin

推荐整理分享跨域请求的完美解决方法(JSONP, CORS)(跨域请求的三种方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:跨域请求的原理,跨域请求方式,跨域请求发出去了吗,跨域请求的解决方案,跨域请求的原理,跨域请求的原理,跨域请求的三种方法,跨域请求的解决方案,内容如对您有帮助,希望把文章链接给更多的朋友!

一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题。解决方法有JSONP,Flash等等。

JSONP

我们发现,Web页面上调用js文件时不受是否跨域的影响,凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>、<img>、<iframe>。那就是说如果要跨域访问数据,就服务端只能把数据放在js格式的文件里。恰巧我们知道JSON可以简洁的描述复杂数据,而且JSON还被js原生支持,所以在客户端几乎可以随心所欲的处理这种格式的数据。然后客户端就可以通过与调用脚本一模一样的方式,来调用跨域服务器上动态生成的js格式文件。客户端在对JSON文件调用成功之后,也就获得了自己所需的数据。这就形成了JSONP的基本概念。允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。

jQuery支持JSONP的调用。在另外的一个域名中指定好回调函数名称,就可以用下面的形式来就加载JSON数据。

服务端当然也要提供JSONP的支持,其实只要提供读写callback这个params就可以了。

跨域资源共享(CORS)

Cross-Origin Resource Sharing (CORS) 是W3c工作草案,它定义了在跨域访问资源时浏览器和服务器之间如何通信。CORS背后的基本思想是使用自定义的HTTP头部允许浏览器和服务器相互了解对方,从而决定请求或响应成功与否。

CORS与JSONP相比,更为先进、方便和可靠。

跨域请求的完美解决方法(JSONP, CORS)(跨域请求的三种方法)

1、 JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求。

2、 使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSONP有更好的错误处理。

3、 JSONP主要被老的浏览器支持,它们往往不支持CORS,而绝大多数现代浏览器都已经支持了CORS。

对一个简单的请求,没有自定义头部,要么使用GET,要么使用POST,它的主体是text/plain,请求用一个名叫Orgin的额外的头部发送。Origin头部包含请求页面的头部(协议,域名,端口),这样服务器可以很容易的决定它是否应该提供响应。

服务器端对于CORS的支持,主要就是通过设置Access-Control-Allow-Origin来进行的。

Header set Access-Control-Allow-Origin *

为了防止XSS攻击我们的服务器, 我们可以限制域,比如

Access-Control-Allow-Origin: AWS 支持跨域资源分享功能CORS,向S3上传不需要代理。

以上这篇跨域请求的完美解决方法(JSONP, CORS)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

深入解析JavaScript中的arguments对象 arguments定义所有的函数都有一个自己的arguments对象,用来储存它实际接受到的参数,而不局限于函数声明时所定义的参数列表。它不是数组却类似数组

JavaScript_object基础入门(必看篇) 之前写Java时老是有点蒙,大部分都是用jQuery,但原理还不是很清楚,最近一段时间在系统的学习JavaScript,有什么问题或错误请指出,多谢..................

实例讲解JavaScript中的this指向错误解决方法 看如下对象定义:'usestrict'varjane={name:‘Jane',display:function(){retrun'Personnamed'+this.name;}};这样能正常调用jane.display();下面的调用会出错:varfunc=jane.display;func

标签: 跨域请求的三种方法

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

上一篇:使用Script元素发送JSONP请求的方法(script在html中的用法)

下一篇:深入解析JavaScript中的arguments对象(深入解析windows第7版)

  • 进项税抵扣怎么弄
  • 红字发票可以只开金额没有数量吗
  • 开发票时怎么操作收款人 复核人 开票人
  • 个人所得税本期免税收入是指什么
  • 税务局开专票作废重开及退税流程
  • 车辆购置税计税依据包括消费税吗
  • 企业总资产是否包含累积折旧
  • 销售发票的会计分录怎么做?
  • 违约金 罚款
  • 增值税税控系统技术维护费计入什么科目
  • 税收征管法实施条例
  • 一般纳税人简易征收范围
  • 出售废旧物资可以开专票吗
  • 个人所得税完整证明
  • 专票有电子发票有抵扣联吗
  • 福利费计提包括奖金吗
  • 跨年付上年租金帐务处理?
  • excel合并的单元格怎么填充序列
  • 电脑进入bios关机
  • 以前年度损益调整属于哪类科目
  • 小型微利企业的企业所得税优惠政策
  • 运输业什么进项税抵扣
  • 清理c盘清理
  • 王者荣耀中廉颇是哪一个族的族长
  • macbookair邮件
  • 招待费如何列支
  • 运输发票符合什么要求
  • 哪些合同不属于担保合同
  • 富贵竹怎么养才能更旺盛水培生根
  • html无刷新跳转
  • 魁北克老城区景点
  • css设置3d
  • javascript速成要多久
  • 融资租入固定资产的改建支出
  • 合并报表中为什么要抵损益
  • 实收资本资本公积印花税怎么申报
  • 应付职工薪酬账户期末余额可能是
  • 公司收到银行存款利息回单的会计分录
  • 低值易耗品在年报上怎么看的
  • 进项税转出的会计分录
  • 工资薪金个人所得税在哪里申报
  • 受雇于两家公司补税怎么算
  • sql server 2008使用说明
  • ms sql 2012
  • 限定性净资产是资产类科目吗
  • 一般纳税人企业所得税税率2023
  • 企业与企业之间通过互联网进行产品
  • 总分类账与明细分类账平行登记的要点包括
  • 零售金银首饰是否缴纳消费税
  • 应交税费的进项和销项是什么意思
  • 收到社保局的生育津贴并付给职工如何入账
  • 可转换债券的转换比率计算公式
  • 租地青苗补偿问题
  • 银行的现金解款需要多久
  • 分公司需要独立核算和报税吗
  • 如何实现多条件查询
  • win8n
  • 电脑网页字体设置
  • linux常用的几种压缩工具
  • WFXSVC.EXE - WFXSVC是什么进程
  • windows10更新最新版本
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • 双系统重装win11
  • ubuntu20.04关闭图形界面命令
  • pqtray.exe - pqtray 是什么进程 有什么用
  • win8怎么卸载应用程序
  • 微软发布Win10优化工具
  • linux中的rpm什么意思
  • win8小键盘怎么打开
  • python如何用turtle
  • cocos2d官网
  • js中使用组件
  • 用javascript
  • 简述linux与windows相比,有哪些优势
  • JavaScript+html5 canvas制作的圆中圆效果实例
  • python中将字典转换为字符串
  • 安卓开发上下滑动功能界面
  • js过滤html代码
  • 江苏税务新办企业套餐
  • 未办理税务登记取得专票抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设