如何在Cloud Endpoints中启用CORS?

19

有没有一种简便的方法来使用Cloud Endpoints启用CORS?

(在响应中添加“Access-Control-Allow-Origin: *”或类似的内容)

谢谢, Brandon


我想在客户端上启用它进行调试。 :) - Brandon
跨域资源共享(CORS)默认未启用所有域名吗?这可能是一个错误。如果是,我可以在内部提交一个错误报告。 - Jason Hall
我发现他们在生产服务器上支持跨域请求,并已经为本地调试支持 CORS 提交了一个问题。 - Brandon
我上传了一个演示,展示它的运行情况:http://demogwtcloudendpoints.appspot.com - Brandon
1
@Branflake2267 你最终做了什么?我没有看到端点类别的任何区别,也找不到代码中GET CORS请求的示例。 - willlma
显示剩余4条评论
3个回答

2

针对 Cloud Endpoints,CORS 在生产环境下工作。在本地测试 devserver 时,我需要禁用浏览器的安全性。对于 Dartium(我认为 Chrome 也是如此),可以在启动时使用 --disable-web-security 参数实现。


这正是我正在寻找的,向GAE发送devserver请求。 - altfuns

2
尝试将以下内容添加到您的端点yaml文件中:
x-google-endpoints:
  - name: "{your-endpoint-host-name}"
    allowCors: "true"

0

这取决于您是否可以控制端点上的标头 - 无论是通过应用程序还是通过提供包含希望进行跨域请求的脚本的原始页面的Web服务器。

JSON-P仍然似乎更受欢迎 - 要么是由于平台的服务器端缺乏支持,要么是不信任它将与客户端(例如旧版网络浏览器)一起工作 - 而JSON-P通常会起作用。


JSONP 应该可以与 Endpoints 一起使用,但通常仅适用于 GET 请求。 - Jason Hall
是的,这只是其中更不愉快的事情之一;)我很惊讶CORS并不是更广为人知,很想看看其他人的答案。 - Michael Neale
我更喜欢尝试通过将响应头添加到端点响应中来启用CORs。问题是如何实现。 :) - Brandon
Branflake2267 - 你在 GAE 中使用的是 Python 还是 Java?如果是 Java,Httpservletresponse 或过滤器可以设置头信息,但不确定是否会被 GAE 忽略或不允许。 - Michael Neale
Java以及特别是新发布的Java Cloud Endpoints API。我已经将其添加到appengine-web.xml中<http-header name="Access-Control-Allow-Origin" value="*" />,但在保留路径./_ah*上不起作用。 - Brandon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接