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

Flask+React求职信生成项目:415与500错误排查求助

问题排查与修复方案

一、415 Unsupported Media Type 错误修复

该错误核心原因是前端POST请求未正确设置请求头或发送的数据格式不符合要求,具体修正如下:

前端代码调整

在React发送POST请求时,必须添加Content-Type: application/json请求头,并将表单数据转为JSON字符串:

// 修正后的React请求示例
fetch('http://localhost:5000/generate_cover_letter', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json', // 强制指定JSON格式
  },
  body: JSON.stringify(formData), // 将表单对象转为JSON字符串
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));

二、500 内部服务器错误(result未赋值)修复

该错误是因为后端代码中result变量存在未赋值就被引用的代码路径,比如API调用异常时未处理分支,修正如下:

Flask后端代码调整

提前初始化result变量,并添加异常捕获逻辑,确保所有分支下变量都有值:

@app.route('/generate_cover_letter', methods=['POST'])
def generate_cover_letter():
    result = ""  # 初始化默认值,避免未赋值引用
    try:
        data = request.get_json()
        assembler = CoverletterAssembler(data)
        result = assembler.generate()
        return jsonify({"cover_letter": result})
    except Exception as e:
        result = f"生成失败:{str(e)}"
        return jsonify({"error": result}), 500

CoverletterAssembler类补充处理

确保generate()方法在API调用失败时也能返回值,避免抛出未处理异常:

class CoverletterAssembler:
    def __init__(self, data):
        self.data = data
    
    def generate(self):
        try:
            # OpenAI API调用逻辑
            response = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": self._build_prompt()}]
            )
            return response.choices[0].message['content'].strip()
        except Exception as e:
            return f"OpenAI API调用失败:{str(e)}"
    
    def _build_prompt(self):
        # 确保提示词构建逻辑始终返回字符串
        return f"根据以下信息生成求职信:{self.data}"

额外检查项

  • 若前后端端口不同,需启用CORS避免跨域拦截:
    from flask_cors import CORS
    app = Flask(__name__)
    CORS(app)
    
  • 验证前端发送的formData键名与后端期望的结构一致,避免JSON解析失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 00:58:14