我正在编写一个React JS应用程序,从本地主机:8080运行,然后我自己的网站,使AJAX调用the API that openweathermap.org provides。为什么向提供API的其他网站的AJAX调用不违反同源策略?
然后它让我想知道,对于localhost:8080和我的网站,都说www.mysite.com,AJAX调用从http://api.openweathermap.org/data/2.5/forecast获取数据违反了同源策略吗?
如果样品实际上是GitHub的页面上托管,那么AJAX调用实际上不能办理,因为GitHub的页面,现在使用https
,而AJAX调用API使用http
,不能https
,也不会获取数据。
P.S.很确定AJAX不是通过JSONP完成的,因为我在控制台中看到请求已经发出,而响应只是纯JSON数据。 (所以没有使用脚本标记方法)。
有趣......我想很多人都知道同源策略,但不是这个“Access-Control-Allow-Origin”响应标题......它是否有名字......它可能被称为 –
“CORS”......维基百科说:“2009年3月草案更名为”跨源资源共享“,并于2014年1月被接受为W3C推荐标准。”我想知道它在哪一年广泛使用... –
是的,“CORS”是所有这一切背后的协议的名称。就当它变得广泛使用时,自2009年以来基本CORS支持已经在大多数浏览器引擎中,但IE在2012年出货并支持基本CORS之前并不支持它。自2013年IE11首次发货以来,所有浏览器都支持全面的CORS支持。 http://caniuse.com/#search=cors – sideshowbarker