Попытка получить доступ к данным ответа с помощью URL - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь сделать что-то простое, когда я делаю запрос от внешнего интерфейса и получаю данные JSON на внутреннем сервере. Я использую ReactJS на внешнем интерфейсе и NodeJS и ExpressJS на внутреннем.

Меня немного смущает мысль о том, как правильно получить доступ к данным JSON во внешнем интерфейсе, создав имя файла сервера имен из server.js или con.now.

Я получаю в своей консоли не отказался подключить ссылку на сервер. Я пытался назвать файл от server.js до cors.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

<code>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)}
) } }

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}`));

1 Ответ

0 голосов
/ 02 июля 2018

Я вижу, что вы используете сайт https://cors.now.sh в качестве обратного прокси. Я не уверен, что этот сайт работает в настоящее время?

Если вы попали в конечную точку API напрямую (https://us-central1-aaronklaser-1.cloudfunctions.net/medium?username=@aaron.klaser) - я вижу верный ответ JSON, возвращенный браузер.

Я полагаю, что проблема в том, что сайт обратного прокси-сервера не работает или не отвечает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...