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

Flask接口接收含HTML代码的POST请求返回404,纯文本请求正常求原因

问题原因

你前端AJAX代码错误设置了processData: false和contentType: false,但未将数据包装为FormData对象,导致请求体格式不符合标准表单提交规范。当请求包含HTML特殊字符时,Flask底层的Werkzeug服务器无法正确解析该异常请求,最终返回404错误;而纯文本请求因无特殊字符,服务器勉强能解析到参数,所以能正常响应,这只是偶然情况。

解决方法

方法一:发送标准表单格式数据(推荐)

去掉processData和contentType这两个错误配置,jQuery会自动将对象编码为application/x-www-form-urlencoded格式,后端可正常通过request.form获取参数:

let datax = {test:'<img width="500px" src="image.png">'}
$.ajax( {
        url: '/apix',
        type: 'POST',
        data: datax
    } ).done(function (data) {
        if (data=="OK"){
          alert("OK")
        }
        else{
          alert('NO');
        }
    });

方法二:使用FormData格式提交

如果确实需要用multipart/form-data格式(比如后续要上传文件),需将数据包装为FormData对象:

let datax = new FormData();
datax.append('test', '<img width="500px" src="image.png">');
$.ajax( {
        url: '/apix',
        type: 'POST',
        data: datax,
        processData: false,
        contentType: false
    } ).done(function (data) {
        if (data=="OK"){
          alert("OK")
        }
        else{
          alert('NO');
        }
    });

后端代码无需修改,保持原逻辑即可。


内容的提问来源于stack exchange,提问作者Saidov Sanjar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 22:36:35