我在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)启用跨源资源共享来访问?
答案 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() {
.....
}
}