Я пытаюсь выяснить, почему запрос 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. Любые предложения приветствуются.