CORS请求在python socketio中未成功

CORS请求在python socketio中未成功,python,flask,cors,flask-socketio,flask-cors,Python,Flask,Cors,Flask Socketio,Flask Cors,我需要调试方面的帮助-同源策略不允许读取远程资源。(原因:CORS请求未成功)出现python flask socketio错误 我正在使用python socketio开发一个聊天应用程序。在上一篇文章中,我已经在本地创建了该应用程序,它可以正常工作,当我将下面的代码移动到服务器时,它显示了上面的错误。客户端代码在https服务器上运行,服务器代码也在https服务器上运行,我不知道为什么会出现这种错误 我在下面附上了我的代码,请给我一个更好的解决方案 server.py import

我需要调试方面的帮助-同源策略不允许读取远程资源。(原因:CORS请求未成功)出现python flask socketio错误

我正在使用python socketio开发一个聊天应用程序。在上一篇文章中,我已经在本地创建了该应用程序,它可以正常工作,当我将下面的代码移动到服务器时,它显示了上面的错误。客户端代码在https服务器上运行,服务器代码也在https服务器上运行,我不知道为什么会出现这种错误

我在下面附上了我的代码,请给我一个更好的解决方案

server.py

    import json
    import os
    from flask import Flask, render_template, request,session
    from flask_socketio import SocketIO, send, emit
    from datetime import timedelta,datetime
    from flask_cors import CORS

    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'secretkey'
    app.config['DEBUG'] = True
    app.config['CORS_HEADERS'] = 'Content-Type'
    cors = CORS(app, resources={r"/*": {"origins": "*"}})
    socketio = SocketIO(app)

    users = {}

    @app.before_request
    def make_session_permanent():
        session.permanent = True
        app.permanent_session_lifetime = timedelta(minutes=1)

    @app.route('/')
    #@cross_origin(origin='*',headers=['Content- Type','Authorization'])
    def index():
        return render_template('index.html')

    @socketio.on('connect')
    def connect():

        print("connected");
    @app.route('/orginate')
    def orginate():
        socketio.emit('server orginated', 'Something happened on the server!')
        return '<h1>Sent!</h1>'

    @socketio.on('username')
    def receive_username(username):
        users[username] = request.sid
        #users.append({username : request.sid})
        #print(users)
        emit('userList', users, broadcast=True)
        print('Username added!')
        print(users)
    if _name_ == '__main__':
        socketio.run(app,host='xxx.xxx.xx.x',port=5001)
屏幕截图1: 此屏幕截图解释了访问控制允许orgin在flask框架中的静态文件夹下的图像上正常工作

屏幕截图2: 此屏幕截图说明套接字调用没有访问控制源

您正在使用烧瓶CORS在烧瓶路线上设置CORS。您缺少Flask SocketIO的类似设置:

socketio = SocketIO(app, cors_allowed_origins=your_origins_here)

您可以使用
“*”
作为允许所有原点的值(我不建议这样做),或者将单个原点设置为字符串,或者将原点列表设置为字符串列表。

谢谢您的回复。我已经做了以上的改变。查看下面的代码,socketio=socketio(app,cors_allowed_origins=['),但我得到以下错误。“从源站“”访问位于“https:xxxxxxxx”的XMLHttpRequest已被cors策略阻止:“‘访问控制允许源站’头包含多个值”、*”,但只允许一个值。”谢谢你的回复。这里的请求URL是指客户端URL,对吗?如果是的话,一些协议我不能在这里给出一个直接的URL。但是示例客户端URL是服务器URL,我需要知道哪个请求是产生多个CORS头的请求。URL指的是完整的URL,而不仅仅是域和端口。请随意省略域名称e、 我对导致此错误的URL路径部分更感兴趣。感谢您的回复。CORS策略已阻止从源站访问XMLHttpRequest:“Access Control Allow origin”标头包含多个值*,但只允许一个值-这是从浏览器返回的完整错误消息。抱歉,“Acce”nginx vhost文件中也配置了ss Control Allow Origin。现在,通过从nginx vhost中删除该行,它工作正常。感谢您的回复
socketio = SocketIO(app, cors_allowed_origins=your_origins_here)