首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌入式javascript中的CORS

嵌入式javascript中的CORS
EN

Stack Overflow用户
提问于 2014-06-27 14:43:59
回答 2查看 1.1K关注 0票数 2

我打算为我们的Javascript代码增加安全性,这些代码嵌入到其他网站上-例如:像分析代码。

用户复制4-5行代码并将其放到他的网站上。作为下一步,代码实际上会下载真正的脚本。

有人建议我使用CORS而不是当前的JSONP调用,因为我可以限制域。

据我所知,CORS只有在添加脚本的html页面需要添加访问域的情况下才会起作用,而如果我为js文件添加访问域,它就不会起作用。

最终的js或html页面的CORS是否打算使用我的脚本?

编辑:

因为它让用户感到困惑,所以我让它变得更简单。

在域A的HTML添加我的脚本从域B喜欢谷歌分析。我可以添加访问域:在呈现我的JS时,还是HTML应该在响应中添加访问域?

EN

回答 2

Stack Overflow用户

发布于 2014-06-27 14:50:32

CORS的工作方式是让您的服务器输出包含允许的域的Access-Control-Allow-Origin标头。向您的服务器发出ajax请求的站点不需要执行任何特殊操作来启用CORS,不需要进行任何配置。这些站点只需发出普通的XHR请求,浏览器就会在内部处理CORS。

您可以从服务器上的标头控制CORS访问。在CORS中,您还可以控制允许的HTTP谓词,例如POST或GET (Access-Control-Allow-Methods)或允许的请求头(Access-Control-Allow-Headers)。

请注意,IE8不支持CORS XHR,微软决定使用XDomainRequest创建自己的CORS实现。因此,如果调用您的服务器的任何站点想要支持IE8,它们将需要使用XDomainRequest而不是XMLHttpRequest。在IE7或更早的版本中,甚至XDomainRequest都不支持CORS。

票数 0
EN

Stack Overflow用户

发布于 2014-06-27 14:52:28

对于这个问题,wiki有一个很好的解释:

可以使用CORS作为JSONP模式的现代替代方案。虽然JSONP仅支持GET请求方法,但CORS还支持其他类型的HTTP请求。使用CORS使web程序员能够使用常规的XMLHttpRequest,它支持比JSONP更好的错误处理。另一方面,JSONP适用于早于CORS支持的遗留浏览器。大多数现代web浏览器都支持CORS。此外,虽然JSONP会在外部站点受到威胁的情况下导致跨站点脚本(XSS)问题,但CORS允许网站手动解析响应以确保安全性。

据我所知,只有当添加我的脚本的

页面需要添加访问域时,CORS才会起作用

您可以通过以下方式访问所有域:

代码语言:javascript
运行
复制
Access-Control-Allow-Origin: *

现在CORS也有了good support

P.S.IE8-9有自己的XDomainRequest实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24445542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档