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

React项目无法向远程Node.js服务器发送请求的问题求助

问题

React项目已托管,远程桌面的Node.js服务器运行正常。使用Axios向服务器发送请求时始终报错,但用PHP的CURL代码测试连接完全正常:

<?php
$url = 'http://000.00.000.00/test';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$response = curl_exec($ch);
if ($response === false) {
    $error = curl_error($ch);
    echo "err: " . $error;
} else {
    echo "Resp: " . $response;
}
curl_close($ch);
?>

但以下React+Axios代码无法正常工作:

import React from 'react';
import axios from 'axios';

function App() {
  axios.get('http://000.00.000.00/test')
    .then(response => {
      console.log(response.data); 
    })
    .catch(error => {
      console.error(error); 
    });
}

已尝试过SSL证书验证相关的解决方案,但问题仍未解决,请问该如何处理?


解决建议

  • 优先排查跨域(CORS)问题:浏览器端Axios受同源策略限制,而PHP的CURL是服务器端请求不受此约束。需确认Node.js服务器是否配置了CORS中间件,允许前端托管域名的请求。示例配置:
    const cors = require('cors');
    const express = require('express');
    const app = express();
    
    app.use(cors({
      origin: '你的前端实际域名', // 测试阶段可临时用*,生产环境需指定具体域名
      credentials: true
    }));
    
  • 核对请求地址细节:确保Axios的请求地址和PHP测试的地址完全一致,包括协议(http/https)、IP/域名、端口号,避免拼写错误。
  • 检查混合内容限制:如果前端是HTTPS托管,而服务器是HTTP,浏览器会阻止混合内容请求。可临时在浏览器设置中允许混合内容(仅测试),或给服务器配置有效SSL证书改用HTTPS。
  • 查看具体错误日志:打开浏览器控制台,查看完整错误信息。如果是No 'Access-Control-Allow-Origin' header,直接处理CORS;如果是证书错误,需确保服务器证书被浏览器信任。
  • 注意环境差异:你之前参考的禁用SSL验证方案是针对Node.js环境的,浏览器端Axios不支持该配置,不要在前端尝试此类操作。

内容的提问来源于stack exchange,提问作者Владимир Солёный

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 01:45:28