HTTP Request node 在呼叫 api.openai.com 時因「config.headers.setContentType is not a function」而失敗

HTTP Request 節點在呼叫 api.openai.com 時失敗,錯誤為「config.headers.setContentType is not a function」

描述問題/錯誤/問題

錯誤訊息是什麼(如果有的話)?

請分享您的工作流程

(選擇畫布上的節點,使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製並貼上工作流程。)

分享最後一個節點傳回的輸出

關於您的 n8n 設定的資訊

  • n8n 版本:
  • 資料庫(預設值:SQLite):
  • n8n EXECUTIONS_PROCESS 設定(預設值:own、main):
  • 透過以下方式執行 n8n(Docker、npm、n8n cloud、桌面應用程式):
  • 作業系統:

Hi @erezeloi

這是 n8n 團隊已知的一個問題
請留意任何更新

@erezeloi 這是 openai.com URL 攔截器 bug,出現在 Cloud 2.19.x,經過 n8n 的請求協助函式的每條路徑都會觸發。目前唯一的解決方案是透過 Cloudflare Worker 進行代理,這樣 URL 就不會是 api.openai.com

export default { async fetch(req) { const u = new URL(req.url); u.host = 'api.openai.com'; u.protocol = 'https:'; return fetch(new Request(u, req)); } }

然後將 HTTP 節點指向 https://yourworker.workers.dev/v1/…,auth 標頭傳遞正常工作。

@erezeloi 歡迎加入社群!您遇到了 n8n Cloud 2.19.x 版本中的已知問題,團隊正在積極處理。

在等待修復期間,如果您的使用情況允許,這裡有一個比 Cloudflare 代理更簡單的解決方案:

使用 HTTP Request 節點搭配標頭驗證,而不是 OpenAI 認證:

  1. 新增 HTTP Request 節點
  2. 方法:POST
  3. URL:https://api.openai.com/v1/chat/completions
  4. 驗證:標頭驗證
  5. 標頭名稱:Authorization,值:Bearer sk-YOUR-API-KEY
  6. Body 內容類型:JSON,搭配您的負載

這完全繞過了損壞的 axios 攔截器,連線運作無誤。輸出的 JSON 格式與 OpenAI 節點返回的格式完全相同。等官方修復發布後,您可以改回使用原生認證。

希望這能幫助您解決問題!