Cross-Origin Resource Sharing(CORS)跨来源资源共享是一份浏览器技术的规范,提供了 Web 服务从不一样域传来沙盒脚本的方法,以避开浏览器的同源策略,是 JSONP 模式的现代版。与 JSONP 不一样,
CORS 除了 GET 要求方法之外也支持其余的 HTTP 要求。用 CORS 能够让网页设计师用通常的 XMLHttpRequest,这种方式的错误处理比 JSONP 要来的好。另外一方面,JSONP 能够在不支持 CORS 的老旧浏览器上运做。
现代的浏览器都支持 CORS。
关于浏览器跨域的原理,一个请求在浏览器端发送出去后,是会收到返回值响应的,只不过浏览器在解析这个请求的响应以后,发现不属于浏览器的同源策略(地址里面的协议、域名和端口号均相同),会进行拦截。
CORS is not about providing server-side security. The Origin request header is produced by the browser and the server has no direct means to verify it.跨域
CORS 并非为了解决服务端安全问题,而是为了解决如何跨域调用资源。至于如何设计出 安全的开放API,倒是另外一个问题了,这里提下一些思路:浏览器
设置Access-Control-Allow-Origin安全