import React,{Component} from 'react';
import '../styles/App.css';
class App extends Component{
constructor() {
super();
this.state = {
products: []
};
}
componentDidMount() {
fetch('http://localhost:4000/products', {
method: 'GET',
mode: "no-cors",
headers: {"Content-Type": "application/json"}
}).then(res => {console.log(res);res.json()})
.then(products => this.setState({products}));
}
render() {
return (
<div>
<h1>Hello, react.js!!!</h1>
<ul>
{this.state.products.map(product => <li>{product.product_name}</li>)}
</ul>
</div>
);
}
}
export default App;
express. js порт прослушивания 4000. Это express. js part
app.get("/products", (req, res) => {
conn.query('SELECT * FROM products', (err, result) => {
if(err) {throw err;}
console.log(result);
res.json(result);
});
});
Если я просто наберу в адресной строке http://localhost: 4000 / products , тогда я получу ответ json, но в приложении компонента отреагирует. JS fetch вернет ошибку, поскольку ответ содержит пустое тело, что означает, что адрес был недоступен. Эта ошибка связана с CORS, но я не знаю, как ее исправить.
Возможно, если вы знаете, как использовать и настроить прокси для этого, то я был бы очень благодарен за подсказку.
Приложение. js использует fetch для доступа к express
вот журналы ошибок, это происходит потому, что тело в запросе пустое, то есть ответ приходит с пустым телом