GET-запрос работает в Express, но не в React - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь выяснить, почему запрос GET в приложении React ведет себя иначе, чем запрос GET в приложении express. Запрос работает в Express и выдает ошибки в React. У меня есть следующие два минимальных воспроизводимых примера в CodeSandBox. Я предполагаю, что это как-то связано с заголовками, но я ищу окончательную помощь. Спасибо.

Приложение React: https://codesandbox.io/s/strange-http-1tpuo

import React, {Component} from 'react'
import ReactDOM from 'react-dom'
import axios from 'axios'

class App extends Component {
  constructor(props) {
    super(props)
    this.state = {deploymentId: ''}
  }

  componentDidMount() {
    axios
      .get(`https://pastebin.com/raw/C3hgLg6v`)
      .then(response => {
        this.setState({deploymentId: response.data.deploymentId})
        console.log('No Error')
      })
      .catch(error => {
        console.log('Get Error: ', error)
      })
  }

  render() {
    const {deploymentId} = this.state
    return <span>{deploymentId}</span>
  }
}

ReactDOM.render(<App />, document.getElementById('root'))

Приложение Express: https://codesandbox.io/s/express-0ne0f

const express = require("express");
const axios = require("axios");
const app = express();

//create a server object:
app.get("/", function(req, res) {
  axios
    .get(`https://pastebin.com/raw/C3hgLg6v`)
    .then(response => {
      res.send(response.data.deploymentId);
      console.log("No Error");
    })
    .catch(error => {
      res.send("Error");
      console.log("Get Error: ", error);
    });
});

app.listen(8080, function() {
  console.log("server running on 8080");
}); //the server object listens on port 8080

Raw Pastebin:

{"deploymentId": "thisisanid"}

При локальном запуске. В приложении React я вижу запрос на вкладке Network Chrome, возвращающий 200 OK, но Ax ios по-прежнему выдает ошибки. Ошибки также происходят с fetch. Любые предложения приветствуются.

...