CORS 全称 Cross-Origin Resource Sharing,
中文为「跨来源资源共用」。
由於现今网路上许多页面所载入的资源,
都来自与所在位置分离的网域,
当使用者代理请求一个非同源的资源时,
基於安全性考量,
会建立一个跨来源 HTTP 请求(cross-origin HTTP request),
以对非同源的资源请求进行限制。
如 XMLHttpRequest
及 Fetch API
都遵守同源政策。
存取跨来源资源时必须使用 CORS 标头,
否则就只能请求与应用程序同源的 HTTP 资源。
达成同源的三个条件:
当请求的资源非同源时,
会在请求中加入新的 HTTP 标头,
让服务器能够描述来源资讯,
以提供浏览器读取。
针对会造成副作用的 HTTP 请求方法,
规范要求浏览器必须要请求传送
「预检(preflight)」请求。
不会触发 CORS 预检的请求类型
仅允许下列 HTTP 方法:
仅允许下列 Content-Type:
只要不符合简单请求的条件,
就会进行「预检(preflighted)」请求。
预检会先以 HTTP 的 OPTIONS 方法
送出请求到另一个网域,
确认後续实际(actual)请求是否可安全送出。
由於跨站请求可能会携带使用者资料,
所以要先进行预检请求。
如果预检没有通过,
浏览器就不会发送 Request。
会触发预检的请求方法(简单请求之外的方法):
<<: Youtube Data API 教学 - 看透你的频道你的心 channels.list
>>: 【PHP Telegram Bot】Day16 - 基础(5):档案读取与写入、cURL
在学习前端的过程,有做过真实需求的网站,会是珍贵的经验。而并不是时时刻刻都会有充足的案子,带每一个...
前言 今年13th铁人终於来到了尾声,又过了一年时间过得很快,今年是第二年的挑战(依旧主管迫害啊~)...
在开始前,还没看过序章的朋友们,可以点击进去,教学大纲和主题方向都写在里面罗! 看完这章节,你会学到...
Vim的基本操作、模式与状态列 [系列文目录] 在使用Vim之前,让我们来认识一下Vim的模式(Mo...
数据类型 在 C# 中,支持多种数据类型,不过我们常用的一般有三大类,一种是数值类型,一种是字符类型...