Fusion Tables 不支持 CORS(跨源资源共享)?

Posted

技术标签:

【中文标题】Fusion Tables 不支持 CORS(跨源资源共享)?【英文标题】:CORS (Cross origin resource sharing) not supported by Fusion Tables? 【发布时间】:2011-12-11 18:52:43 【问题描述】:

从 issue 554 上的 cmets 判断,我认为 Fusion Tables 支持 CORS 请求。尝试以下操作会出现跨站点错误(在 Chrome 中):

xhr = new XMLHttpRequest()
xhr.open("GET","http://www.google.com/fusiontables/api/query?sql=SELECT%20*%20FROM%201906375")
xhr.send()

错误是:Origin http://[domain] is not allowed by Access-Control-Allow-Origin.

以下示例运行良好(用于比较),一个简单的 php 页面,我在其中设置“CORS”标头并回显原始服务器,例如“hello example.com”:

xhr = new XMLHttpRequest()
xhr.open("GET","http://skipperkongen.dk/services/corstest/hellocors.php")
xhr.send()

我必须承认,我在网上找不到任何地方明确表示融合表支持 CORS,但我有点期待它(也从问题中的 cmets 判断)...

我做错了吗?

【问题讨论】:

这是一个 curl 请求,显示响应中未返回 Access-Control-Allow-Origin 标头。但是我对 Fusion Tables 中 CORS 支持的状态一无所知: curl -H "Origin: foobar.com" -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (Khtml, like Gecko) Chrome/14.0.835.202 Safari/535.1" "google.com/fusiontables/api/query?sql=SELECT%20*%20FROM%201906375" --verbose 嗯,是的,这也是我的结论。我觉得这有点奇怪,将 Access-Control-Allow-Origin 标头粘贴在响应上会很容易,而且 IMO 会大大改进产品。 顺便说一句,猜你看我的主页 :-) 用户代理的选择。好吧,很高兴有人读到它。 【参考方案1】:

仅为(未记录且可能更改)JSONP 接口更新了标头:

http://www.google.com/fusiontables/api/query?sql=&jsonCallback=

【讨论】:

对我来说,这似乎是一个奇怪的选择?由于 CORS 和 JSONP 都完成相同的事情,即跨站点 javascript Web 服务调用。 CORS 将在非 JSONP 接口 IMO 上具有价值。感谢您的回答:-)

以上是关于Fusion Tables 不支持 CORS(跨源资源共享)?的主要内容,如果未能解决你的问题,请参考以下文章

ini 示例Nginx配置,用于为反向代理API添加跨源资源共享(CORS)支持

ini 示例Nginx配置,用于为反向代理API添加跨源资源共享(CORS)支持

ini 示例Nginx配置,用于为反向代理API添加跨源资源共享(CORS)支持

ini 示例Nginx配置,用于为反向代理API添加跨源资源共享(CORS)支持

ini 示例Nginx配置,用于为反向代理API添加跨源资源共享(CORS)支持

跨源请求被阻止的 CORS - 使用角度 cli 解决 [仅限开发人员] [重复]