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

Express使用emailjs-com报错ReferenceError: XMLHttpRequest is not defined如何解决

问题原因

emailjs-com是浏览器端专用的SDK,依赖浏览器原生提供的XMLHttpRequest API,而Node.js(Express运行环境)默认没有这个全局API,所以才会触发未定义的报错。你单独引入xhr包也没用,因为emailjs-com内部不会调用你引入的这个实例,还是会找全局的XMLHttpRequest。

修复方案(优先推荐)
  • 第一步:卸载原有的浏览器端包
npm uninstall emailjs-com
  • 第二步:安装EmailJS官方提供的Node.js服务端SDK
npm install @emailjs/nodejs --save
  • 第三步:修改引入和初始化代码,替换原来的引入部分
const emailjs = require('@emailjs/nodejs');
// 初始化需要传公钥和私钥,私钥可以在EmailJS后台的安全设置里获取
emailjs.init({
  publicKey: "user_CPxhncQgw2s5e4nNwbu36",
  privateKey: "你的EmailJS私钥", // 注意私钥不要泄露到前端代码,仅在服务端使用
});
  • 第四步:原有的emailjs.send调用逻辑不需要修改,直接就能正常运行。
不推荐的兼容方案(仅临时调试用)

如果你一定要继续使用emailjs-com,可以手动把XMLHttpRequest挂载到Node.js全局,但是稳定性没有保障,不适合生产环境使用:
首先安装兼容包:

npm install xhr2 --save

然后在引入emailjs-com之前添加全局挂载代码:

global.XMLHttpRequest = require('xhr2');
var emailjs = require("emailjs-com");
emailjs.init("user_CPxhncQgw2s5e4nNwbu36")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:54:07