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

Hostinger VPS网站集成PayPal支付网关遇阻:本地正常线上报错

排查PayPal线上弹窗加载失败的问题

这个Unexpected token '<'错误本质是前端请求PayPal相关接口时,后端返回的不是预期的JSON,而是HTML内容(比如404页面、服务器错误页)——因为HTML以<开头,JSON解析器直接报错。结合你的情况,按下面的步骤逐一排查:

1. 先确认后端API的线上可用性

  • 直接在浏览器或Postman里访问你线上的PayPal订单创建接口(比如server.js里定义的/api/create-order这类路由),把URL换成你的VPS公网IP/域名+端口+接口路径,比如https://your-vps-ip:8888/api/create-order。
    • 如果返回的是HTML(比如404页面、500错误页),说明后端路由没匹配上,或者服务没正常启动,或者端口没开放。
    • 检查VPS防火墙/云服务商安全组:确保你后端服务用的端口(比如8888)已经开放,允许外部访问。

2. 检查前端请求的API地址是否正确

  • 本地开发时你可能写的是localhost:8888/api/xxx,但线上必须换成VPS的公网地址。打开app.js,找发起PayPal请求的代码,确认URL是不是硬编码了localhost,没改成线上地址。
  • 打开浏览器F12控制台,切换到Network标签,点击PayPal按钮后,找到对应的请求(比如名字是create-order的):
    • 看请求的URL是不是正确的线上地址。
    • 看响应内容,如果是HTML,那就是地址错了或者后端没处理这个请求。

3. 核对线上环境变量配置

  • 检查VPS上的.env文件,确认PayPal的沙箱客户端ID、秘钥和本地的一致(线上沙箱也能正常使用,正式上线再换生产密钥),同时有没有把localhost相关的配置(比如API_BASE_URL)换成线上地址。
  • 确认Node.js服务正确加载了.env:比如server.js里有没有引入dotenv.config(),如果用pm2管理进程,要确保环境变量已经正确配置(可以用pm2 show <app-name>查看)。

4. 检查HTTPS配置

  • PayPal的Checkout弹窗要求线上网站必须用HTTPS(localhost例外),如果你的网站是HTTP,浏览器会拦截请求,或者返回混合内容错误。
  • 给你的VPS配置SSL证书(比如用Let's Encrypt免费证书),确保网站通过HTTPS访问后,再测试PayPal按钮。

5. 查看服务器端错误日志

  • 如果用pm2管理Node.js进程,运行pm2 logs查看实时日志,看后端有没有报错(比如PayPal API请求失败、路由错误、端口占用等)。
  • 如果直接用node server.js启动,查看终端输出的错误信息,定位后端的问题。

按上面的步骤一步步排查,大概率能找到问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:35:04