反应:Axios网络错误

时间:2017-08-31 11:16:04

标签: javascript reactjs axios

这是我第一次使用axios而且遇到了错误。

  axios.get(
    `http://someurl.com/page1?param1=1&param2=${param2_id}`
  )
  .then(function(response) {
    alert();
  })
  .catch(function(error) {
    console.log(error);
  });

使用正确的URL和参数,当我检查网络请求时,我确实从我的服务器得到了正确的答案,但是当我打开控制台时,我发现它没有调用回调,而是发现了错误。

  

错误:网络错误   堆栈跟踪:   createError @ http://localhost:3000/static/js/bundle.js:2188:15   的HandleError @ http://localhost:3000/static/js/bundle.js:1717:14

8 个答案:

答案 0 :(得分:10)

如果使用NodeJS创建API

<小时/> 您的Express应用程序需要使用CORS(跨源资源共享)。将以下内容添加到您的服务器文件中:

// This should already be declared in your API file
var app = express();

// ADD THIS
var cors = require('cors');
app.use(cors());

为了更全面地了解CORS,请阅读Mozilla Documentation on CORS

答案 1 :(得分:1)

在数字海洋飞沫的生产上,我遇到了同样的问题。我在 ReactJS 中使用 axios 来调用 Node.js API。

尽管我包括了cors

const cors = require('cors');
app.use(cors());

但是我仍然必须添加

res.header( "Access-Control-Allow-Origin" );

在调出我的控制器之前。它为我工作。在那里,我意识到cors无法正常工作。因此,我再次卸载并安装了它们,并且可以正常工作!

完整的代码在这里。

所以您要么使用

 app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
  res.header("Access-Control-Allow-Headers", "x-access-token, Origin, X-Requested-With, Content-Type, Accept");
  next();
});

或使用

app.use(cors());

相同。

答案 2 :(得分:0)

我的问题与我请求的网址有关。我没有在网址开头插入http://。我的意思是我要的是类似92.920.920.920/api/Token的URL,而不是http://92.920.920.920/api/Token。添加http://解决了我的问题。

答案 3 :(得分:0)

除了@jacobhobson答案,我还使用了一些参数来使其工作。

app.use(cors({origin: true, credentials: true}));

答案 4 :(得分:0)

确保cors({ origin : [ "http://localhost:3001"]}).env文件中的端口号相同。

答案 5 :(得分:0)

当您在localhost上工作而忘记添加 http://

时,会发生这种情况

用法错误

package com.example.svgadder;

import java.io.*;
import java.nio.*;

import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode;
import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject;

import de.rototor.pdfbox.graphics2d.PdfBoxGraphics2D;

import java.awt.geom.AffineTransform;

import com.kitfox.svg.SVGDiagram;
import com.kitfox.svg.SVGException;
import com.kitfox.svg.SVGUniverse;

public class App 
{
    public static void main( String[] args ) throws Exception {
        
        App app = new App();

    }

    public App() throws Exception {
        
        // loading PDF and SVG files

        File pdfFile = new File("input.pdf");
        File svgFile = new File("input.svg");

        PDDocument doc = PDDocument.load(pdfFile);
        PDPage page = doc.getPage(0);

        SVGUniverse svgUniverse = new SVGUniverse();
        SVGDiagram diagram = svgUniverse.getDiagram(svgUniverse.loadSVG(f.toURL()));
        
        PdfBoxGraphics2D graphics = new PdfBoxGraphics2D(doc, 500, 500);

        try {
            diagram.render(graphics);
        } finally {
            graphics.dispose();
        }

        PDFormXObject xform = graphics.getXFormObject();

        try (PDPageContentStream contentWriter = new PDPageContentStream(doc, page, AppendMode.APPEND, false)) {

            AffineTransform transform = AffineTransform.getTranslateInstance(0, 0);
            xform.setMatrix(transform);
            contentWriter.drawForm(xform);
        }

        doc.save("res.pdf");
        doc.close();
    }
}

正确的是

  const headers = {
    "Content-Type": "application/json",
    Authorization: apiKey,
  };
  const url = "localhost:5000/api/expenses/get-expenses";

  axios.get(url, { headers });

  // NETWORK ERROR

答案 6 :(得分:0)

在我的情况下,发生在我的互联网连接不稳定时。确保您的互联网连接稳定。

答案 7 :(得分:0)

就我而言,我使用了“https”而不是“http”,也请检查一下。