二手车网站系统网站建设6135678

张小明 2026/1/19 22:03:29
二手车网站系统,网站建设6135678,做销售找客户渠道,企业年金辞职了就白交了吗跨域#xff08;CORS#xff09;原因及解决方案 文章目录跨域#xff08;CORS#xff09;原因及解决方案什么是跨域#xff1f;浏览器的同源策略什么是跨域#xff1f;如何解决跨域JSONP#xff08;比较老的方法#xff0c;不推荐#xff09;CORS #xff08;服务器端…跨域CORS原因及解决方案文章目录跨域CORS原因及解决方案什么是跨域浏览器的同源策略什么是跨域如何解决跨域JSONP比较老的方法不推荐CORS 服务器端设置浏览器跨域配置开发阶段测试使用webpack/vite 等工程化工具中配置什么是跨域浏览器的同源策略浏览器有一个重要的安全机制叫 同源策略Same-Origin Policy。它的意思是浏览器只允许网页向和自己“同源”的地址发送请求否则就拦截。同源的定义是协议http/ https、域名或 IP、端口号 三者完全相同。假设你的网页地址是http://localhost:3000/index.html目标地址目标地址是否同源原因http://localhost:3000/api/data✅同源协议、域名、端口号都一样https://localhost:3000/api/data❌不同源协议不同https httphttp://127.0.0.1:3000/api/data❌不同源域名不同localhost 127.0.0.1什么是跨域当你访问一个不同源的接口时浏览器会因为同源策略阻止这个请求这就是跨域。通常控制台会出现这样的错误如何解决跨域JSONP比较老的方法不推荐解决方法浏览器生成一个script元素访问数据接口服务器响应一段js代码调用某个函数并把响应数据传入前端代码functionjsonp(url){constscriptdocument.createElement(script);script.srcurl;// 为了不影响页面script加载过后将其移除script.addEventListener(load,(){script.remove();)}jsonp(请求的url地址);// 服务器返回的js函数functioncallback(data){console.log(data);}服务器端代码router.get(/,async(req,res){constresultawaitstuServ.getStudents();res.status(200).send(getResult(result));// jsonp 实现跨域// 首先将 content-type的值设置为 “application/javascript”// 修改返回的数据将数据放入到callback函数中res.header(content-type,application/javascript).send(callback(${JSON.stringify(result)}));});JSONP的问题会打乱服务器的消息格式jsonp要求服务器响应js代码但是在非跨域情况下服务器又需要响应一个正常的json合适。只能完成GET请求浏览器的script标签发出的请求只能是get请求。CORS 服务器端设置CORS是基于http1.1的一种跨域解决方案它的全称是Cross-Origin Resource Sharing跨域资源共享。总体思路如果浏览器要跨域访问服务器资源需要获得服务器的允许。三种不同的交互模式简单请求需要同时满足的条件请求方法属于getpost head 中的一种请求头仅包含安全的字段常见安全字段如下AcceptAccept-languageContent-TypeContent-languageDPRDownLinkSave-DataViewport-WidthWidth请求头如果包含 Content-Type值只能为text/plainmultipart/form-dataapplication/x-www-form-urlencoded当浏览器判定某个ajax请求为简单请求时会在请求头中自动添加Origin字段告诉服务器是哪个源地址在跨域请求服务器响应头中应该包含Access-Control-Allow-Origin允许跨域请求代码实现constallowOrigins[origin1,origin2,...];if(origininreq.headersallowOrigins.includes(req.headers.origin)){res.header(access-control-allow-origin,req.headers.origin);}需要预检的请求若浏览器判定ajax请求不是一个简单的请求就会按照下面的流程进行浏览器发送预检请求OPTIONS询问服务器是否允许服务器允许浏览器发送真实请求服务器完成真实响应例如有一个需要预检的跨域请求fetch(http://myRequest.com/api/test,{method:POST,header:{Content-Type:application/json,a:a,b:b},body:JSON.stringify({name:abc,age:18})}).then(resres.json()).then(dataconsole.log(data));此时浏览器会发送一个预检请求询问服务器是否允许预检请求有以下特征请求方法为OPTIONS没有请求体请求头中包含Origin请求的源和简单请求的含义一致Access-Control-Request-Method后续的真实请求将使用的请求方法Access-Control-Request-Headers后续的真实请求会改动的请求头若服务器允许需要在请求头中添加Access-Control-Allow-Method: 允许的后续真实请求Access-Control-Allow-Headers: 允许改动的请求头Access-Control-Allow-Origin允许的源Access-Control-Max-Age告诉浏览器多少秒内对于同样的请求源、方法、头都不需要再发送预检请求了示例代码constallowOrigins[origin1,origin2,...];if(req.methodOPTIONS){res.header(Access-Control-Allow-Methods,req.header(access-control-request-method));res.header(Access-Control-Allow-Headers,req.header(access-control-request-headers));}if(origininreq.headersallowOrigins.includes(req.headers.origin)){res.header(access-control-allow-origin,req.headers.origin);}附带身份凭证的请求有一些场景需要请求携带cookie只需要在响应头中添加Access-Control-Allow-Credentials: true即可。对于一个附带身份凭证的请求若服务器没有明确告知浏览器仍然视为跨域被拒绝。note:对于跨域请求nodejs中可以使用 cors库来实现也可以自己封装跨域的中间件。浏览器跨域配置开发阶段测试使用谷歌浏览器为例1. 新建目录如C:\MyChromeDevUserData。‌‌2. 右键快捷方式→属性→在“目标”字段末尾添加 --disable-web-security --user-data-dirC:\MyChromeDevUserData注意参数前有空格。‌‌若原目标值带引号参数需加在引号外。‌‌webpack/vite 等工程化工具中配置module.exports{// 其他配置...devServer:{// 其他devServer配置...proxy:{/api:{target:http://example.com,// 目标服务器地址changeOrigin:true,// 是否改变源地址pathRewrite:{^/api:},// 重写路径// 其他代理配置...}}}};
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站设计论文结论网络公司注册资金多少

什么是 电鱼智能 RK3568?电鱼智能 RK3568 是一款面向工业通信与边缘计算的高集成度核心平台。它搭载四核 Cortex-A55 处理器,主频 2.0GHz,内置 1TOPS NPU。其最显著的工业特性是集成了 2 个独立的原生千兆以太网控制器 (MAC),支持…

张小明 2026/1/17 21:05:53 网站建设

做网站的叫什么软件基于html5的移动端网站开发

B站m4s视频转换全攻略:3分钟解锁缓存视频永久播放权限 【免费下载链接】m4s-converter 将bilibili缓存的m4s转成mp4(读PC端缓存目录) 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 还在为B站缓存视频无法播放而苦恼吗?m4s-convert…

张小明 2026/1/17 21:05:55 网站建设

厦门 网站建设企业邮箱网页搜索能力属于专业技术素养吗

2025年贵州大学计算机保研复试机试真题 2025年贵州大学计算机保研复试上机真题 历年贵州大学计算机保研复试上机真题 历年贵州大学计算机保研复试机试真题 更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream N 诺 DreamJudge 题库&#xff1…

张小明 2026/1/17 21:05:55 网站建设

做网站页面对PS切图贸易网站怎么做

BetterNCM插件管理器5分钟快速上手终极指南 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐功能单一而烦恼吗?BetterNCM插件管理器让你的音乐体验瞬间升级…

张小明 2026/1/17 21:05:56 网站建设

建设防伪网站ps简单网页设计模板图片

8 个论文降重工具推荐,本科生查重率优化神器 论文写作的“三座大山”:时间、重复率与修改的痛苦 对于大多数本科生来说,期末论文不仅是学术能力的体现,更是对时间管理、逻辑思维和文字表达的一次全面考验。从选题到开题报告&#…

张小明 2026/1/17 21:05:58 网站建设

网站开发技术对比网站推广预算

在工业生产的 “数据传输链路” 中,光纤收发器是默默无闻的核心支撑 —— 从工厂自动化的设备联动,到电力传输的信号反馈,再到物联网的节点互联,它的稳定性直接决定了整个系统的运行效率。长期以来,安华高(…

张小明 2026/1/17 21:05:59 网站建设