最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

启用CORS

运维笔记admin15浏览0评论

启用CORS

启用CORS

我是React的新手,请记住这一点。出于学习目的,我构建了一个简单的React + Redux应用程序,该应用程序以JSON格式从外部API获取数据。

如果我在Chrome中手动启用CORS(通过扩展程序),一切正常。

现在,我将应用程序部署到Heroku,我需要永久启用CORS才能访问API。显然这比我想象的要复杂得多!

这是我的代码:

server.js

const express = require('express');
const port = process.env.PORT || 8080;
const app = express();
const path = require('path');
const cors = require('cors');

app.use(cors());
app.use(express.static(__dirname + '/'));

app.get('*', (req, res) => {
  res.sendFile(path.resolve(__dirname, 'index.html'));
});

app.listen(port);

console.log("server started");

SRC / index.js

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import ReduxPromise from "redux-promise";
import App from './components/app';
import reducers from './reducers';

const createStoreWithMiddleware = applyMiddleware(ReduxPromise)(createStore);

ReactDOM.render(
  <Provider store={createStoreWithMiddleware(reducers)}>
    <App />
  </Provider>
  , document.querySelector('.container'));

SRC /动作/ index.js

import axios from 'axios';

const API_KEY = "********************************";
export const SEARCH_URL = `=${API_KEY}`;
export const FETCH_RECIPES = "FETCH_RECIPES";

export function fetchRecipes(searchTerm) {
    const url = `${SEARCH_URL}&q=${searchTerm}`;
    const request = axios.get(url);

    return {
        type: FETCH_RECIPES,
        payload: request
    };
}

有任何想法吗?

回答如下:

您需要在服务器端启用cors,在那里发出请求,不可能从客户端覆盖cors设置,只有少数例外。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论