首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >发送从localhost:5000到localhost:8000的http请求时出现问题

发送从localhost:5000到localhost:8000的http请求时出现问题
EN

Stack Overflow用户
提问于 2022-11-15 18:46:10
回答 1查看 34关注 0票数 0

我有一个后端cython烧瓶应用程序,它有一个带有路由http://127.0.0.1:8000/items的GET端点。我的第二个应用程序是一个在http://127.0.0.1:5000托管的html网站。我正试图从我的网站发送一个请求到这个端点。

烧瓶应用程序:

代码语言:javascript
运行
复制
@app.route('/items', methods=["GET"])
def getPrices():
    .......
    # "stuff" is a list with json objects [{"x": "y"}, {"x": "z"}, ....]
    return {
        "items": stuff
    }

我试着把它拿来:

代码语言:javascript
运行
复制
let response = await fetch(
   'http://127.0.0.1:8000/items',
   {
      method: 'GET',
      mode: 'no-cors' // if i don't do this im getting fetch blocked by cors error
});
console.log(response);

不过,这是我得到的回应

代码语言:javascript
运行
复制
Response {type: 'opaque', url: '', redirected: false, status: 0, ok: false, …}
body: null
bodyUsed: false
headers: Headers {}
ok: false
redirected: false
status: 0
statusText: ""
type: "opaque"
url: ""
[[Prototype]]: Response

当我在浏览器中访问http://127.0.0.1:8000/items时,端点可以正常工作。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-15 18:53:57

您的烧瓶端点中的mode: no-cors在这里被错误地使用,并将导致type: "opaque"的响应,这些响应具有不可读的主体。Explained here

浏览器不允许跨源请求工作,除非服务器显式允许它们。

解决这一问题的一种方法是使用flask-cors (可以通过pip安装),例如:

代码语言:javascript
运行
复制
from flask import Flask
from flask-cors import CORS, cross_origin

app = Flask(__name__)

cors = CORS(app)
# or, if you want some specific (or any) route to allow
# any cross-origin request
cors = CORS(app, resources={r"/some-route/*": {"origins": "*"}})

@app.route("/")
# this decorator is only necessary if the origin wasn't set earlier
@cross_origin()
def my_api():
  return "This request works cross-origin!"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74450757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档