python flask-socketio 中的 CORS 请求未成功
CORS request did not succeed in python flask-socketio
我在调试方面需要帮助 - 同源策略不允许读取位于 https://some-domain.com 的远程资源。 (原因:CORS 请求未成功)在 python flask-socketio 错误中。
我正在使用 python flask-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)
client.js
var socket = io.connect("https://xxx.xxx.xx.x:5001/",{secure:false});
截图一:
此屏幕截图解释了访问控制允许源在 Flask 框架中的静态文件夹下的图像工作正常
截图二:
此屏幕截图解释了套接字调用没有访问控制源
您正在使用 Flask-CORS 在您的 Flask 路由上设置 CORS。您缺少 Flask-SocketIO 的类似设置:
socketio = SocketIO(app, cors_allowed_origins=your_origins_here)
您可以使用 '*'
作为允许所有来源的值(我不推荐这样做),或将单个来源设置为字符串,或将来源列表设置为字符串列表。
我在调试方面需要帮助 - 同源策略不允许读取位于 https://some-domain.com 的远程资源。 (原因:CORS 请求未成功)在 python flask-socketio 错误中。
我正在使用 python flask-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)
client.js
var socket = io.connect("https://xxx.xxx.xx.x:5001/",{secure:false});
截图一: 此屏幕截图解释了访问控制允许源在 Flask 框架中的静态文件夹下的图像工作正常
截图二:
此屏幕截图解释了套接字调用没有访问控制源
您正在使用 Flask-CORS 在您的 Flask 路由上设置 CORS。您缺少 Flask-SocketIO 的类似设置:
socketio = SocketIO(app, cors_allowed_origins=your_origins_here)
您可以使用 '*'
作为允许所有来源的值(我不推荐这样做),或将单个来源设置为字符串,或将来源列表设置为字符串列表。