首页 > 解决方案 > 尝试使用 url 访问响应数据

问题描述

我正在尝试一些简单的事情,我从前端发出请求并在后端获取 JSON 数据。我在前端使用 ReactJS,在后端使用 NodeJS 和 ExpressJS。

我对如何通过从 server.js 或 con.now 生成名称服务器文件名来将 JSON 数据访问到前端的正确方法感到困惑。

我正在进入我的控制台,但它拒绝将链接连接到服务器。我曾尝试将文件命名server.jscors.now将服务器连接到前端的文件,但我错了。

Failed to load resource: net::ERR_CONNECTION_REFUSED

但是当每个人都在我的控制台中收到一条错误消息时cors.now.sh/https://us-central1-aaronklaser-1.cloudfunctions.net/medium?username=@aaron.klaser

Medium.js

import React from 'react';
import PageHeader from './PageHeader';
import PageContent from './PageContent';
import axios from 'axios';

export default class Medium extends React.Component {

  state = {
    posts: []
  }


  componentDidMount() {
    this.fetchPosts().then(this.setPosts)

  }

  fetchPosts = () => axios.get(`https://cors.now.sh/https://us-central1-aaronklaser-1.cloudfunctions.net/medium?username=@aaron.klaser`)

  setPosts = response => {
    this.setState({
      posts: response

    })
  }

  render() {
    return (
      <div>
        <PageHeader/>
        <PageContent>
          <pre>{JSON.stringify(this.state.posts, null, 2)}</pre>
        </PageContent>
      </div>
    )
  }
}

cors.now

const express = require('express'); 
const app = express(); 
const port = process.env.PORT || 5000; 
const request = require('request'); 


app.get("/api/medium", (req, res) => {
    if(!req.query.username){
        return res.status(400).send('Error: You need to include query param ?username=@yourUsername');
    } else {
      return request(url,(error, response, body) => {
          const url = `https://medium.com/${req.query.username}/latest?format=json`;
          const prefix = `])}while(1);</x>`
          const strip = payload => payload.replace(prefix, ``)
          res.send(JSON.parse(strip(body)));
      });
    } 
});

app.listen(port, () => console.log(`Listening on port ${port}`));

标签: node.jsreactjsexpress

解决方案


我看到您正在使用https://cors.now.sh站点作为反向代理。我不确定该网站目前是否正常运行?

如果您直接点击您的 API 端点 ( https://us-central1-aaronklaser-1.cloudfunctions.net/medium?username=@aaron.klaser ) - 我看到一个有效的 JSON 响应返回到浏览器。

我认为问题在于反向代理站点此时没有运行或响应。


推荐阅读