概述
通常,web浏览器中运行的JavaScript web页面内会否认任何JavaScript之外的任何服务器发起请求的JavaScript是托管在。例如,JavaScript运行在www.google.com上不能为您的公司网络服务器发出请求。的细节,读了同源策略。
groov包括支持HTTP访问控制(歌珥)为了解决这一政策,所以你可以编写JavaScript应用程序运行在一个web页面,可以告诉你的groov实例。之前groov会让你这样做,你需要告诉它什么域信任JavaScript的请求。
注意:这个问题只适用于JavaScript应用程序运行在一个正常的网页。其他类型的应用程序(包括Android / iOS,或JavaScript运行在节点。js或电子)不需要担心同源策略。政策只会影响代码运行在浏览器中直接交谈groovAPI。(它并不影响web页面和web服务器,然后说到groovAPI)。
配置跨源请求域
在你的groov项目设置(配置>项目),在一般设置,你会发现一个名为“允许跨源请求域”配置选项。这是为歌珥访问白名单。这里你会进入领域,您的JavaScript应用程序将被托管,以及一个域名,你做你当地的发展。
例如,如果你做开发运行在端口3449上的服务器上本地,你意愿你的动态应用程序托管https://my.company.com/你的允许域清单应该包括这些:
http://localhost: 3449https://my.company.com
在groov构建你的配置是这样的:

一定要点击保存设置顶部的项目设置面板的变化在这里生效!
请注意,您只需要包含一个端口号,如果您的web服务器上运行一个非标准的端口,你需要包括协议(http或https)。实际的应用程序的URL是不包括在内。
注意:groov不支持通配符歌珥访问。您需要显式地列出每个域,你信任你的请求groov实例。
常见的陷阱
有几个原因,请求groov从网页中可能会失败,这是不可能告诉他们除了在您的应用程序。时可能遇到的一些常见的有:
HTTP 401响应
这些意思groov没有发现或识别一个API键在你的请求。
HTTP 403响应
这些意思groov确实发现和识别你的API键,但是用户连接到API键不是授权请求。例如,数据存储API目前仅访问用户编辑或管理员的角色。
HTTP 404响应
这意味着你的网址是错误的。你可能完全错误的端点,或者如果它是一个端点,包括一个参数(读取数据存储标记的值,例如,你可能使用一个标识符,不存在在您的项目。
一般的错误
在某些情况下,你的XmlHttpRequest错误处理程序将被调用,而不是你的负载处理程序。这通常意味着浏览器阻止了请求,你要看看你的JavaScript控制台时发现。常见的原因有:
- 浏览器找不到服务器你发出请求。你的主机名是正确的吗?
- 浏览器没认出你服务器上的SSL证书请求。如果你使用一个自签名证书groov实例,您将需要确保任何浏览器要连接从信任该证书。
- “跨源请求阻塞”意味着你groov允许跨源请求的域名白名单不包括JavaScript应用程序服务器上运行。
作为一个具体的例子的歌珥错误,这就是Firefox显示当一个请求从服务器不包括在歌珥白名单:
跨源请求阻塞:同源策略不允许在https://ar1.mycompany.com/api/v1/data-store/tags阅读远程资源。(原因:歌珥头“Access-Control-Allow-Origin”失踪)。