【发布时间】:2019-01-26 12:45:50
【问题描述】:
我用 Python 构建了一个由 Node 应用程序获取的应用引擎 API。 API 按预期工作,用于 (1) 在生产中获取和发布请求,以及 (2) 在开发中获取请求。它在开发中的发布请求失败,我可以使用一些帮助找出原因。
错误信息
在我的节点环境中,我看到了错误:
请求中没有“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:4444” 使用权。响应的 HTTP 状态代码为 500。如果响应不透明 满足您的需求,将请求的模式设置为“no-cors”以获取 禁用 CORS 的资源。
但是我已经在我的应用程序中使用了 flask_cors 包,所以我想知道这是否真的是一个 CORS 问题。
我激活的虚拟python环境日志:
文件 "/myproject/googleAdsApi/env/lib/python2.7/site-packages/urllib3/contrib/appengine.py", 第 103 行,在 init 中 "URLFetch 在此环境中不可用。")
所以也许我应该在我的虚拟环境中使用 URLFetch 的替代方法?
我目前的实现
获取:
fetch('http://localhost:8080/api/get_accounts', {
method: "POST",
mode: "cors",
cache: "no-cache",
credentials: "same-origin",
headers: {
"Content-Type": "application/json; charset=utf-8",
},
redirect: "follow",
referrer: "no-referrer",
body: JSON.stringify(credentials)
})
.then(response => response.json())
.then(result => console.log(result));
flask_cors:
app = Flask(__name__)
cors = CORS(app, resources={r"/api/*": {"origins": "*"}})
【问题讨论】:
-
dev env 是指运行本地 virtualenv 还是使用 GAE dev_appserver.py ?
-
仅运行本地虚拟环境。但我会给 dev_appserver.py 一个机会。错过了文档的那一部分。
-
一定要使用 dev_appserver.py 来运行 dev。 GAE 有许多难以在本地虚拟环境中手动复制的特性。此外,您还可以获得许多有用的监控工具(任务队列、Memcache、存储等)
-
是的,它可以像那样工作。谢谢你指点我:)
-
我以后会移动评论作为其他人的答案。
标签: python google-app-engine virtualenv