假设在站点 http://domain-a.com
的某 HTML
页面通过 <img>
的src
请求 http://domain-b.com/image.jpg
。网络上的许多页面都会加载来自不同域的CSS
样式表,图像和脚本等资源。出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。
例如,XMLHttpRequest
和Fetch API
遵循同源策略。 这意味着使用这些API
的Web应用程序只能从加载应用程序的同一个域请求HTTP
资源,尤其在开发和测试时,跨域问题会给前端测试带来非常不便。除非使用CORS
头文件。
这个CORS(Cross-Origin Resource Sharing,跨域资源共享)
是W3C
的一个工作草案,定义了在必须访问跨域资源时,浏览器与服务器应该如何沟通。它背后的基本思想是:使用自定义的HTTP
头来告诉浏览器,让运行在一个 Origin
(包含请求页面的源信息:协议、域名和端口)上的Web应用被准许访问来自不同源服务器上的指定的资源。
比如一个简单请求,它没有自定义的头部,而主体内容是text/plain
。在发送请求时,需要给它附加一个额外的Origin
头部,其中包含请求页面的源信息(协议、域名和端口),以便服务器根据这个头信息来决定是否给予响应。例如Origin: http://www.baidu.com
。
如果服务器认为这个请求可以接受
golang跨域访问
最新推荐文章于 2024-08-14 07:15:00 发布
本文介绍了如何在Golang中处理跨域请求。由于浏览器的安全策略,跨源HTTP请求受到限制,除非服务器允许。 CORS(跨源资源共享)提供了一种机制,通过设置特定头部允许浏览器与不同源的服务器通信。文中提供了具体的Golang代码示例,展示了如何在服务器端配置CORS以允许跨域请求,并通过调整头部实现这一功能。
摘要由CSDN通过智能技术生成