You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地网络网站控制Python QApplication:跨PC文本提交失败求助

问题分析与解决方案

你的问题核心是跨域请求被浏览器拦截,同时可能存在防火墙端口限制的问题,以下是具体解决步骤:

1. 解决跨域资源共享(CORS)限制

XAMPP部署的网站默认使用80端口,而你的Flask服务运行在5000端口,浏览器会将不同端口视为不同源,拦截跨域POST请求。给Flask添加CORS支持即可解决:

  • 先安装flask-cors包:
pip install flask-cors
  • 修改Flask代码:
from flask import Flask, request
from flask_cors import CORS

app = Flask(__name__)
CORS(app)  # 允许所有跨域请求,生产环境可配置更严格规则

@app.route('/', methods=['GET', 'POST'])
def handle_request():
    global to_do

    if request.method == 'POST':
        input_text = request.form.get('inputText')
        to_do = input_text
        print(to_do)

    return 'OK'

# 其余代码不变

2. 开放本机5000端口的防火墙权限

本机防火墙可能默认阻止局域网其他设备访问5000端口,需要手动开放:

  • Windows:打开「Windows Defender防火墙」→ 高级设置→ 入站规则→ 新建规则→ 端口→ 输入5000→ 允许连接→ 选择域/专用网络→ 命名规则后完成。
  • Linux/macOS:使用ufw allow 5000(Linux)或在系统偏好设置的防火墙中添加允许5000端口的规则。

3. 优化JS请求地址(可选)

JS中硬编码了http://192.168.0.104:5000,如果本机IP变动会导致请求失败,可改为相对路径或动态获取当前域名:

// 动态获取当前域名替换IP
const currentHost = window.location.hostname;
xhr.open('POST', `http://${currentHost}:5000`, true);

额外排查点

  • 确认其他设备和本机在同一局域网,能ping通192.168.0.104
  • 检查Flask启动时是否绑定了正确的局域网IP(你已经设置host='192.168.0.104',这部分没问题)

内容的提问来源于stack exchange,提问作者Illés Balog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:17:38