首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何启用falcon_cors的“`OPTIONS`”请求?

如何启用falcon_cors的“`OPTIONS`”请求?
EN

Stack Overflow用户
提问于 2017-07-11 11:27:55
回答 1查看 1.2K关注 0票数 1

我使用falcon_cors在python中创建restful服务。如果UI从不同的域发送http请求,浏览器将首先发送选项请求。但在浏览器上,我得到了以下错误:

XMLHttpRequest无法加载http://localhost:8000/user/。对飞行前请求的响应不会通过访问控制检查:响应中的“访问控制-允许-凭据”标题的值必须是'true‘,当请求的凭据模式是'include’时,这个值必须是‘true’。因此,“http://localhost:4200”源是不允许访问的。由XMLHttpRequest发起的请求的凭据模式由withCredentials属性控制。

我已经搜索过,为了处理这个请求,我需要允许后端的选项。因此,我编写代码如下:

代码语言:javascript
运行
复制
f_cors = falcon_cors.CORS(allow_origins_list=[
    'http://localhost:4200',
    'http://127.0.0.1:4200',
    ],
    allow_all_headers=True, allow_all_methods=True)

app_pre_beaker = falcon.API(middleware=[
    f_cors.middleware
])

我在创建allow_all_methods=True时指定了falcon_cors,但仍然会出现相同的错误。我还应该更新些什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-11 12:22:47

问题中的错误消息所指出的问题与OPTIONS请求无关。

相反,问题似乎是服务器发送了一个带有空值的Access-Control-Allow-Credentials响应头。要解决这个问题,需要将服务器配置为发送Access-Control-Allow-Credentials: true。也就是说,头值必须是"true“。

如果服务器没有使用Access-Control-Allow-Credentials: true进行响应,那么浏览器将阻止您的前端代码访问响应--因为您的前端JavaScript代码在它发送给服务器的请求中包含了凭据,在这种情况下,CORS协议要求服务器使用Access-Control-Allow-Credentials: true进行响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45033278

复制
相关文章

相似问题

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