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

POST请求配置异常:点击提交无响应,提示cannot GET /ask

问题排查与修复方案

核心错误点

  • 变量名不匹配:初始化的OpenAI实例是openai,但代码中调用时用了未定义的client,导致服务器报错无法响应请求。
  • OpenAI API响应结构错误:新版API(v4)的响应无需通过response.data访问,直接读取response对象中的属性即可。

修正后的server.js代码

require('dotenv').config();
const express = require('express');
const OpenAI = require("openai");
const cors = require ('cors')
const path = require('path')

// Initialization
const openai = new OpenAI({
  apiKey: "sk-proj-BLAHBLAHBLAHAPIKEY",
});

const app = express();
const port = 3001;

app.use(cors());
app.use(express.json());
app.use(express.static(path.join(__dirname, 'public')));

app.post('/ask', async (req, res) => {
  const { question } = req.body;
  console.log('Received question:', question);  // Log the received question

  try {
    console.log('Sending request to OpenAI...');
    // 修正:使用正确的实例名openai
    const response = await openai.chat.completions.create({
      model: "gpt-3.5-turbo",
      messages: [{ role: "user", content: question }],
    });

    // 修正:新版API直接访问response.choices,无需response.data
    console.log('OpenAI response:', response);  // Log the full response object
    res.json({ answer: response.choices[0].message.content });
  } catch (error) {
    console.error('Error communicating with OpenAI:', error);  // Log the error
    res.status(500).json({ error: 'Failed to generate response from OpenAI API' });
  }
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

额外说明

  • 浏览器提示cannot GET /ask属于正常现象:因为/ask接口是POST方法,直接在浏览器地址栏发起GET请求必然会返回该错误,不影响按钮的POST请求功能。
  • 按钮无响应的根本原因是服务器端代码报错,导致请求返回500错误,修正上述两个问题后,重启服务器即可正常获取AI回复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:13:14