如何在Google App Engine Python服务器上启用CORS?

时间:2015-07-03 19:13:40

标签: python google-app-engine cors

我在Javascript控制台上看到以下错误:

VM31:1 XMLHttpRequest cannot load '<some-url>'. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '<my-url>' is therefore not allowed access.

如何通过Google App Engine(Python)启用跨源资源共享来访问?

3 个答案:

答案 0 :(得分:6)

对于python脚本,您可以在其他self.response.header行附近添加以下行。

self.response.headers['Access-Control-Allow-Origin'] = '*'

这对我有用。这个想法取自另一个答案的笔记中列出的php问题。

答案 1 :(得分:4)

您必须在yaml配置中使用Access-Control-Allow-Origin http标头

handlers:
- url: /
  ...
  http_headers:
    Access-Control-Allow-Origin: http://my-url

docs

中的CORS支持下查找更多内容

答案 2 :(得分:1)

对于那些想知道如何在 Springboot 中基本上允许 AppEngine 实例的所有来源的人:

  • 在您的项目具有的 @CrossOrigin(origins = "*") 类上使用 @RestController 注释
  • 或者对具有 @GetMapping, @PostMapping, etc 注释之一的任何特定资源方法使用上述相同的注释。

无需在 app.yaml 中设置任何处理程序。实际上,按照文档中的说明更改 app.yaml 文件时它不起作用

...
...
...

@SpringBootApplication
@RestController
@CrossOrigin(origins = "*")  // <--- here 
public class SpringbootApplication {

 ...
 ...
  @GetMapping("/")      
  @CrossOrigin(origins = "*").     // <--- or here 
  public String hello() {
      .....
  }

}