背景:本地代码调试时,加载本地资源正常,jquery的AJAX请求服务端资源报错。

在这里插入图片描述
Access to XMLHttpRequest at '***** ’ from origin ‘null’ has been blocked by CORS policy: Cross origin requests.

报错信息:跨域请求已被CORS策略阻止。

CORS:Cross-origin resource sharing ,跨域资源共享。

报错原因:出于安全性,浏览器的同源策略限制脚本内发起跨源Http请求。 例如,XMLHttpRequest和Fetch API。

同源策略:域名、协议、端口均相同。

关键点:CORS需要“浏览器”和“服务器”同时支持。目前,所有浏览器都支持该功能。

因此,本地调试要实现CORS(跨域资源共享),还需要服务器的支持。

  1. 办法一:配置 IIS Web 服务器

  2. 办法二:搭建 http-server 服务器

web容器之前用过,今天换一个试试,用方法二。

操作步骤:

① http-server 是基于node.js 的webserver ,首先用 node -v 命令确认电脑是否安装node.js,我的是 v12.16.1 版本。

node -v

② 全局安装http-server

npm install http-server -g

③ 启动 http-server 服务

http-server ./public

http-server ./

④ 进入目标文件夹,启动你的网页 http-server -open

hs -o

呼~ 含跨域请求的网页打开成功:
在这里插入图片描述
⑤ 关闭 http-server 服务
在命令行界面按下:Ctrl-c 键。

到此,本地调试的跨域问题就解决完成啦~

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐