QAnything [BUG] 请求的资源上没有 'Access-Control-Allow-Origin' 标头,远程调用服务器部署的openai接口

7xllpg7q  于 2个月前  发布在  其他
关注(0)|答案(3)|浏览(42)

错误信息

  • 是否已有关于该错误的issue或讨论?
  • 该问题是否已在FAQ中有解答?
  • 当前行为 | 访问从'http://100.161.35.42:8777/api/local_doc_qa/local_doc_chat'origin 'http://100.161.35.42:5052'的资源被CORS策略阻止:没有'Access-Control-Allow-Header'标头在请求的资源上。如果一个不透明响应满足您的需求,请将请求的模式设置为'no-cors'以获取资源,带有CORS禁用。
  • 期望行为 | 允许跨域(跨计算机)调用自定义的openapi接口
  • 运行环境 |
- OS:Centos7.9
- NVIDIA Driver: 535.104.05
- CUDA:12.2
- Docker Compose:v2.24.4
- NVIDIA GPU Memory:24G*2
  • QAnything日志 | 浏览器日志:--------------------------
    访问从'http://100.161.35.42:8777/api/local_doc_qa/local_doc_chat'origin 'http://100.161.35.42:5052'的资源被CORS策略阻止:没有'Access-Control-Allow-Header'标头在请求的资源上。如果一个不透明响应满足您的需求,请将请求的模式设置为'no-cors'以获取资源,带有CORS禁用。
    ----------------sanic_api.log ----------------------------------
    rerank_port: 9001
    embed_port: 9001
    <Logger debug_logger (INFO)> <Logger qa_logger (INFO)>
    [2024-02-15 11:45:15 +0800] [834] [INFO] Sanic Extensions:
    INFO:sanic.root:Sanic Extensions:
    [2024-02-15 11:45:15 +0800] [834] [INFO] > injection [0 dependencies; 0 constants]
    INFO:sanic.root: > injection [0 dependencies; 0 constants]
    [2024-02-15 11:45:15 +0800] [834] [INFO] > openapi [http://0.0.0.0:8777/docs]
    INFO:sanic.root: > openapi [http://0.0.0.0:8777/docs]
    [2024-02-15 11:45:15 +0800] [834] [INFO] > http
    INFO:sanic.root: > http
    [2024-02-15 11:45:15 +0800] [834] [INFO] > templating [jinja2==3.1.3]
    INFO:sanic.root: > templating [jinja2==3.1.3]
    INFO:debug_logger:ADD COLUMN timestamp
    INFO:debug_logger:1060 (42S21): Duplicate column name 'timestamp'
    INFO:debug_logger:[SUCCESS] 数据库qanything连接成功
    init local_doc_qa in online
    INFO:debug_logger:ADD COLUMN timestamp
    INFO:debug_logger:1060 (42S21): Duplicate column name 'timestamp'
    INFO:debug_logger:[SUCCESS] 数据库qanything连接成功
    init local_doc_qa in online
    [2024-02-15 11:45:15 +0800] [834] [INFO] Starting worker [834]
    INFO:sanic.server:Starting worker [834]
    INFO:debug_logger:ADD COLUMN timestamp
    INFO:debug_logger:1060 (42S21): Duplicate column name 'timestamp'
    INFO:debug_logger:[SUCCESS] 数据库qanything连接成功
    init local_doc_qa in online
    [2024-02-15 11:45:15 +0800] [834] [INFO] Starting worker [834]
    INFO:sanic.server:Starting worker [834]
    [2024-02-15 11:45:15 +0800] [827] [INFO] Starting worker [827]
    INFO:sanic.server:Starting worker [827]
    根据提供的错误日志,问题出在跨域访问被阻止。服务器本机使用的是 qwen-72b-int4 模型,而请求的资源没有设置 'Access-Control-Allow-Origin' 头。为了解决这个问题,你需要在服务器端设置允许跨域访问。

如果你使用的是 Sanic 框架,可以在创建 Sanic 应用时添加 cors 参数来允许跨域访问。以下是一个示例:

from sanic import Sanic
from sanic.response import json
from sanic_cors import CORS, cross_origin

app = Sanic(__name__)
CORS(app)

@app.route("/")
async def test(request):
    return json({"hello": "world"})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)

在这个示例中,我们导入了 sanic_cors 模块并使用 CORS(app) 装饰器允许跨域访问。你可以根据实际情况调整代码以适应你的项目。

btxsgosb

btxsgosb1#

我遇到了相同的问题,报告了跨域错误。

kb5ga3dv

kb5ga3dv2#

遇到相同的问题,寻求解答

qqrboqgw

qqrboqgw3#

这个问题已经解决了,请查看:#188

相关问题