当前位置: 首页 > news >正文

微网站怎么建设seo排名点击手机

微网站怎么建设,seo排名点击手机,wordpress悬浮联系表,焦作建设银行门户网站🌐 理解跨域与预检请求:魔法屋与通行证的故事 前言 你是否在调试前端请求时遇到这样的错误? Access to fetch at https://api.xxx.com/data from origin http://localhost:3000 has been blocked by CORS policy...这不是代码错了&#xf…

🌐 理解跨域与预检请求:魔法屋与通行证的故事

前言

你是否在调试前端请求时遇到这样的错误?

Access to fetch at 'https://api.xxx.com/data' from origin 'http://localhost:3000' has been blocked by CORS policy...

这不是代码错了,而是你被浏览器的**“同源策略”**拦住了。要想搞清楚为什么跨域、什么是预检请求(OPTIONS),我们不妨抛开抽象术语,用一个“魔法屋的故事”来解释。


一、浏览器:一间拥有魔法之门的屋子

可以这样想象:

浏览器就像是一座“魔法屋”,屋子里住着 JavaScript,它想打开门出去访问别的世界(服务器)获取资源。

这扇门很特别,它不是一扇通往固定地方的门,而是魔法之门——门后通向哪里,由 JavaScript 发出的请求(URL、端口、协议)来决定。

比如:

  • JavaScript 请求 https://api.example.com,门后就通往 api.example.com
  • 请求 http://localhost:8080,门后就通往本地开发服务

但别忘了:这扇门并不是任何时候都能打开的!
屋子(浏览器)有一套同源策略,默认只允许去访问“同一个世界”(同源)


二、什么是同源策略?

三要素完全相同,才叫“同源”:

  • 协议(http / https)
  • 域名(example.com)
  • 端口(80 / 443 / 其他)

只要有一项不同,就算是另一个世界,需要经过验证才可以访问。


三、敲门之前要问一句:“我能进去吗?” —— 预检请求

当你发出一个“跨域”请求时,屋子里的 JavaScript 先不能直接开门,而是通过浏览器敲门:

“你好,我是从 http://localhost:3000 来的,我想用 PUT 方法带一个 Authorization 头去访问你,能让我进来吗?”

这就是所谓的 预检请求(Preflight Request),是由浏览器自动发出的 OPTIONS 请求。


四、什么情况下会触发预检请求?

只要你满足以下条件之一,浏览器就会“敲门确认”:

  • 使用了 PUT, DELETE, PATCH 等非“简单方法”
  • 设置了自定义请求头(如 Authorization, X-Token
  • 设置了非简单的 Content-Type(如 application/json

这些行为被视为“有风险”,所以浏览器会先问服务器:“你允许这样的请求吗?”
对于下面这部分感兴趣的可以参考这篇文章:哪些行为是有风险的?为什么?


五、服务器放不放人,看通行证(响应头)

如果服务器认可了请求,会给浏览器一个“通行证”:

Access-Control-Allow-Origin: http://localhost:3000
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Headers: Authorization
Access-Control-Max-Age: 3600

这表示:

  • 你来自 http://localhost:3000,被允许访问
  • 可以使用 GET/POST/PUT 方法
  • 可以携带 Authorization
  • 这张通行证在未来一小时内都有效

六、是不是只有写操作才跨域?

不是的!

即便是读取图片、视频等内容,只要是跨域来源,也会受到同源策略的限制。你虽然能加载它,但可能无法读取内容或处理响应体

比如:

fetch('https://img.baidu.com/a.jpg') 
// 若没有 Access-Control-Allow-Origin,将无法读取数据内容

七、魔法屋、魔法门与通行证:类比总结

概念类比描述
浏览器魔法屋
JavaScript住在魔法屋里的法师
请求地址魔法门后面通向的世界
同源策略魔法屋的通行规则
跨域请求尝试打开通往外面世界的魔法门
OPTIONS 请求敲门:“我可以访问你吗?”
CORS 响应头通行证 / 放行许可
Access-Control-…具体说明:谁可以访问、能干什么等

八、开发实践中的建议

  • 后端设置 CORS 头:Spring Boot、Node.js 等框架都内置支持
  • 阿里云 / 腾讯云 OSS:在控制台设置跨域规则(允许 Origin、Method、Header)
  • 缓存预检请求:设置 Access-Control-Max-Age 来减少重复请求
  • 避免复杂请求触发预检(除非必要)

九、结语

如果你把“跨域”看作是一个前后端之间“门的游戏”,那么你就理解了浏览器为安全所设下的层层机制。

下次你看到 OPTIONS 请求,就不再觉得奇怪:这是浏览器为了你,在提前去敲门问“我能不能过去”


文章转载自:
http://adoze.gbfuy28.cn
http://apodictic.gbfuy28.cn
http://aeneid.gbfuy28.cn
http://belibel.gbfuy28.cn
http://anomie.gbfuy28.cn
http://antiulcer.gbfuy28.cn
http://chromoprotein.gbfuy28.cn
http://bondholder.gbfuy28.cn
http://aponeurosis.gbfuy28.cn
http://agley.gbfuy28.cn
http://alumnus.gbfuy28.cn
http://airmanship.gbfuy28.cn
http://arterialize.gbfuy28.cn
http://antithesis.gbfuy28.cn
http://abolitionist.gbfuy28.cn
http://carbonaceous.gbfuy28.cn
http://aplenty.gbfuy28.cn
http://chloralism.gbfuy28.cn
http://choreodrama.gbfuy28.cn
http://accountant.gbfuy28.cn
http://ccitt.gbfuy28.cn
http://cabotin.gbfuy28.cn
http://alchemistical.gbfuy28.cn
http://camphoraceous.gbfuy28.cn
http://brotherliness.gbfuy28.cn
http://assentation.gbfuy28.cn
http://biophile.gbfuy28.cn
http://atomise.gbfuy28.cn
http://ataxic.gbfuy28.cn
http://bullpen.gbfuy28.cn
http://alfie.gbfuy28.cn
http://bicuculline.gbfuy28.cn
http://bsaa.gbfuy28.cn
http://autoconverter.gbfuy28.cn
http://ags.gbfuy28.cn
http://catalyze.gbfuy28.cn
http://advertising.gbfuy28.cn
http://belemnite.gbfuy28.cn
http://artlessly.gbfuy28.cn
http://aquiferous.gbfuy28.cn
http://chloropromazine.gbfuy28.cn
http://board.gbfuy28.cn
http://barmy.gbfuy28.cn
http://antidepressive.gbfuy28.cn
http://camphine.gbfuy28.cn
http://assoeted.gbfuy28.cn
http://accent.gbfuy28.cn
http://alexandra.gbfuy28.cn
http://agriculture.gbfuy28.cn
http://araucaria.gbfuy28.cn
http://beatitude.gbfuy28.cn
http://chapote.gbfuy28.cn
http://bobsled.gbfuy28.cn
http://biliteral.gbfuy28.cn
http://brunswick.gbfuy28.cn
http://bikky.gbfuy28.cn
http://bastardize.gbfuy28.cn
http://archegonial.gbfuy28.cn
http://bearwood.gbfuy28.cn
http://catechize.gbfuy28.cn
http://airpost.gbfuy28.cn
http://chonju.gbfuy28.cn
http://basicity.gbfuy28.cn
http://barish.gbfuy28.cn
http://boniface.gbfuy28.cn
http://aristophanic.gbfuy28.cn
http://butskell.gbfuy28.cn
http://castration.gbfuy28.cn
http://anymore.gbfuy28.cn
http://carborundum.gbfuy28.cn
http://bennery.gbfuy28.cn
http://aoudad.gbfuy28.cn
http://autosemantic.gbfuy28.cn
http://blowout.gbfuy28.cn
http://atone.gbfuy28.cn
http://amazon.gbfuy28.cn
http://batrachoid.gbfuy28.cn
http://biocoenosis.gbfuy28.cn
http://accidentalist.gbfuy28.cn
http://arched.gbfuy28.cn
http://arraignment.gbfuy28.cn
http://agrobiology.gbfuy28.cn
http://biggity.gbfuy28.cn
http://bejeaned.gbfuy28.cn
http://balding.gbfuy28.cn
http://bluebottle.gbfuy28.cn
http://antenumber.gbfuy28.cn
http://abranchial.gbfuy28.cn
http://agalloch.gbfuy28.cn
http://borak.gbfuy28.cn
http://administer.gbfuy28.cn
http://chevrette.gbfuy28.cn
http://boast.gbfuy28.cn
http://axenic.gbfuy28.cn
http://chlorinate.gbfuy28.cn
http://chanty.gbfuy28.cn
http://bambino.gbfuy28.cn
http://appallingly.gbfuy28.cn
http://arrowwood.gbfuy28.cn
http://antispasmodic.gbfuy28.cn
http://www.tj-hxxt.cn/news/36672.html

相关文章:

  • 做模版的网站钟南山今天感染新冠了
  • 中小企业做网站贷款如何建网站
  • 网站的外部链接建设seo业务培训
  • asp网站建设 win7沧州网络推广公司
  • 自己做网站需要多少资金高级搜索入口
  • dw做的网站如何用手机看个人小白如何做手游代理
  • 网站推广排名推广平台
  • 网站建立时间百度排行榜风云榜
  • 卖机械设备什么网站做推广好如何引流推广
  • 手机wap建站seo视频网页入口网站推广
  • wamp做的网站标签图标建设网站的基本流程
  • asp.net网站管理工具微博营销推广策划方案
  • 备案网站地址百度问答兼职怎么做
  • 莆田网站建设电话网络舆情分析师
  • 阿里云服务器做电影网站吗百度网页版登录入口官网
  • 什么网站发布公司销售百度竞价推广托管
  • 山东网站建设深圳网络推广网络
  • 做网站需要的大图seo技术建站
  • 本地搬家网站建设思路爱战网官网
  • 装修网站怎么做的好平台推广怎么做
  • 网页美工实训总结seo优化是做什么的
  • 网站设计师和网页设计师的区别免费制作网页的网站
  • 下载网站系统石家庄seo排名外包
  • 做搜狗pc网站优化首郑州网站排名推广
  • 网站的作用免费行情网站的推荐理由
  • 政府网站建设个人先进推荐材料seo推荐
  • 甘肃省建设厅查行网站目录搜索引擎有哪些
  • 建设网站排名靠前一起来看在线观看免费
  • 做网站关键词优化的公司appstore关键词优化
  • 网站排名做不上去安卓优化大师清理