我正在尝试支持使用Python中的Google Cloud Endpoints Framework v2编写的API上的跨源资源共享(CORS)调用,但我无法做到。
根据the documentation,默认情况下启用CORS,但我无法使用Javascript从其他来源进行任何调用,我明白了:
XMLHttpRequest无法加载https://myapp.appspot.com/_ah/api/apiname/v1/events。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://fiddle.jshell.net”访问。响应的HTTP状态代码为500。
我尝试添加了像this SO question这样的响应。但它也不起作用。
有谁知道如何在我的API中启用CORS?
谢谢!
答案 0 :(得分:1)
您发布的SO链接提到服务器需要发送CORS标头。
您必须发送http标头:“Access-Control-Allow-Origin”,其值为“*”或“您的客户端域名”。
您可以从作为Google Cloud Endpoint一部分的可扩展服务代理(ESP)发送此标头,也可以从服务器端api脚本发送http标头。
我建议从网络服务器发送标题,因为ESP可以缓存api响应。