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

网站建设咨询服务合同朋友 合同 网站制作

网站建设咨询服务合同,朋友 合同 网站制作,百度高级搜索引擎,wordpress 创建子主题引言 很多时候#xff0c;需要允许Web应用程序在不同域之间#xff08;跨域#xff09;实现共享资源。本文将简介跨域、CORS的概念#xff0c;以及如何在Golang中如何实现CORS。 什么是跨域 如果两个 URL 的协议、端口#xff08;如果有指定的话#xff09;和主机都相…引言 很多时候需要允许Web应用程序在不同域之间跨域实现共享资源。本文将简介跨域、CORS的概念以及如何在Golang中如何实现CORS。 什么是跨域 如果两个 URL 的协议、端口如果有指定的话和主机都相同的话则这两个 URL 是同源的。例如 什么是CORS 跨域资源共享Cross-origin resource sharingCORS用于让网页的受限资源能够被其他域名的页面访问的一种机制。通过该机制页面能够自由地使用不同源的图片、样式、脚本、iframes以及视频。一些跨域的请求特别是Ajax常常会被同源策略Same-origin policy所禁止。跨源资源共享定义了一种方式为的是浏览器和服务器之间能互相确认是否足够安全以至于能使用跨源请求cross-origin requests。比起纯粹的同源请求这将更为自由和功能性的functionality但比纯粹的跨源请求更为安全。—维基百科 实现原理 跨域资源共享标准描述了新的HTTP头部在浏览器有权限的时候应该以如何的形式发送请求到远程URLs。虽然服务器会有一些校验和认证但是浏览器有责任去支持这些头部以及增加相关的限制。对于能够修改数据的Ajax和HTTP请求方法特别是 GET 以外的 HTTP 请求或者搭配某些 MIME 类型的 POST 请求浏览器必须首先使用 OPTIONS 方法发起一个预检请求preflight request从而获知服务端是否允许该跨源请求。服务器确认允许之后才发起实际的 HTTP 请求。在预检请求的返回中服务器端也可以通知客户端是否需要携带身份凭证包括 Cookies 和 HTTP 认证相关数据。 Go是如何实现 在Golang中可以使用HTTP处理程序和中间件来实现CORS。接着我们以Gin为例 package mainimport (github.com/gin-gonic/ginnet/http )func main() {router : gin.Default()// CORS中间件cors : func(c *gin.Context) {// 允许特定的域进行跨域请求c.Writer.Header().Set(Access-Control-Allow-Origin, http://mysite.vip)// 允许特定的请求方法c.Writer.Header().Set(Access-Control-Allow-Methods, GET, POST, PUT, DELETE)// 允许特定的请求头c.Writer.Header().Set(Access-Control-Allow-Headers, Content-Type, Authorization)// 允许携带身份凭证如Cookiec.Writer.Header().Set(Access-Control-Allow-Credentials, true)// 继续处理请求c.Next()}// 应用CORS中间件到所有路由router.Use(cors)// 定义一个路由和处理器函数router.GET(/hello-world, func(c *gin.Context) {c.String(http.StatusOK, Hello, World!)})router.Run(:8080) }输出 [GIN-debug] GET /hello-world -- main.main.func2 (4 handlers) [GIN-debug] Listening and serving HTTP on :8080在上例中设置了Access-Control-Allow-Origin响应头指定允许跨域请求的域名。您可以根据需要设置为特定域名、通配符*允许所有域名或动态获取请求头中的Origin值。另外还设置了允许的请求方法、请求头以及是否允许携带身份凭证如Cookie。 测试 这里通过命令行curl来验证如果返回结果中出现 CORS 相关的 header ccess-Control-Allow-Origin: * Access-Control-Allow-Methods: * Access-Control-Allow-Headers: * Access-Control-Expose-Headers: * Access-Control-Max-Age: 5 则跨域成功。结果如下: #curl -i -k http://127.0.0.1:8080/hello-world HTTP/1.1 200 OK Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Content-Type, Authorization Access-Control-Allow-Methods: GET, POST, PUT, DELETE Access-Control-Allow-Origin: http://mysite.vip Content-Type: text/plain; charsetutf-8 Date: Sat, 14 Oct 2023 13:42:35 GMT Content-Length: 13Hello, World!
http://www.w-s-a.com/news/668221/

相关文章:

  • php开发手机端网站开发更换网站标题
  • 提供网站建设报价延津县建设局网站
  • 江苏网站建设流程土巴兔全包装修怎么样
  • 环保网站建设方案带漂浮广告的网站
  • 淘宝客合伙人网站建设建站前端模板
  • 网站单页模板怎么安装中世纪变装小说wordpress
  • 手机免费建设网站制作宝安第一网站
  • 如何做x响应式网站asp网站出现乱码
  • 网站备案的幕布是什么来的游戏推广代理
  • 固始城乡建设局的网站怎么打不开了上海建设网站
  • 关于加强网站信息建设的通知3d网站开发成本
  • 网站建设实训过程报告成品网站1688入口的功能介绍
  • 网站定制开发需要什么资质国外设计灵感网站
  • 搜搜网站收录广告设计与制作模板图片
  • 江苏省建设监理协会网站汕头网站建设方案优化
  • 中国风网站配色方案正规少儿编程排名
  • 兼职做网站的软件wordpress赞的代码
  • 销售网站的技巧四博互联做的网站
  • 网站建设 图片问题小程序免费制作平台凡科网页版
  • 猪八戒网做网站怎么样网站建设 客户同程
  • 西安网站建设那家强网站建设方案 报价
  • 销售网站建设考核指标网站建设价格组成
  • 网站302跳转网站建设完成后 下一步做什么
  • 赣州制作网站企业硬件开发用什么语言
  • 新网站如何被网站收录百度排名优化软件
  • html网站简易模板国内买机票的网站建设
  • 百度关键词分析工具百度seo排名软
  • 自己怎样做免费网站ueditor 上传wordpress
  • 深圳高端网站开发网站建设公司销售技巧
  • 网站建设的优势是什么意思可拖动网站