localhost에서 데이터를 가져 오지 못했습니다.

Legeo

NodeJ로 첫 번째 API를 만들었습니다.

이것은 브라우저의 URL에서 리소스에 액세스하려고하면 얻는 것입니다.

여기에 이미지 설명 입력

나는 우편 배달부와 함께 게시물에 액세스하는 데 성공했습니다. 이제 그래픽 사이트에 약간의 전화를 걸려 고했지만 데이터를 가져올 수 없었습니다.

이것은 내가 사가에서 시도한 전화입니다

export const fetchWrapper = async url => {
  var request = new Request({
      url: url,
      method: "GET"
  });
  await fetch(request)
      .then(res => res.json())
      .then(
          result => {
              return result;
          },
          error => {
              return error;
          }
      );
};

그리고 이것은 사가입니다

export function* getPosts() {
    const url = `http://localhost:8080/feed/posts`;
    try {
        const  data  = yield call(fetch(url), {method: 'GET'});
        console.log('data',)
        yield put(getPostsResponse({ data }));
    } catch (e) {
        console.log("error", e);
    }
}

그리고 이것은 내가 콘솔에있는 오류입니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

최신 정보

주석에서 제안했듯이 이것은 내 노드 코드입니다.

controller / feed.js

exports.getPosts = (req, res, next) => {
    res.json({
        posts: [
            { id: 1, title: "Titolo 1", description: "descrizione 1" },
            { id: 2, title: "Titolo 2", description: "descrizione 2" },
            { id: 3, title: "Titolo 3", description: "descrizione 3" }
        ]
    });
};

exports.createPosts = (req, res, next) => {
    const title = req.body.title;
    const description = req.body.description;

    const ID = 1234;

    res.status(201).json({
        message: "success operation",
        post: {
            id: ID,
            title: title,
            description: description
        }
    });
};

route / feed.js

const express = require("express");
const router = express.Router();

const feedController = require("../controllers/feed");

router.get("/post", feedController.getPosts);
router.post("/post", feedController.createPosts);


module.exports = router;

app.js

const express = require('express');
const bodyParser = require("body-parser");
const feedRoute = require('./route/feed');

const app = express();

app.use(bodyParser.json()); //application json
app.use('/feed', feedRoute);
app.listen(8080);

최신 정보

useEffect(() => {
        // getPosts();
        fetch("http://localhost:8080/feed/post")
            .then(resp => resp.json())
            .then(data => console.log('data', data));
    }, [getPosts]);

또한 이것을 시도했지만 아무것도 없었으며 동일한 오류가 발생합니다.

예상되는 동작 :

localhost 서버에 대한 성공적인 호출을해야합니다.

해결책

ivani가 방금 CORS를 활성화했다고 제안했듯이 이것은 app.js에 추가 한 코드입니다. 최선의 해결책은 아니지만 이제 응답을 볼 수 있습니다.

const allowedOrigins = ["http://localhost:3000", "http://localhost:8080"];

app.use(
    cors({
        origin: function(origin, callback) {
            if (!origin) return callback(null, true);
            if (allowedOrigins.indexOf(origin) === -1) {
                var msg =
                    "The CORS policy for this site does not " +
                    "allow access from the specified Origin.";
                return callback(new Error(msg), false);
            }
            return callback(null, true);
        }
    })
); 
Legeo

ivani가 제안했듯이 CORS를 활성화했습니다.

나는 이것을 nodeJs의 App.js에 추가했습니다.

const allowedOrigins = ["http://localhost:3000","http://localhost:8080"];

    app.use(
        cors({
            origin: function(origin, callback) {
                if (!origin) return callback(null, true);
                if (allowedOrigins.indexOf(origin) === -1) {
                    var msg =
                        "The CORS policy for this site does not " +
                        "allow access from the specified Origin.";
                    return callback(new Error(msg), false);
                }
                return callback(null, true);
            }
        })
    ); 

이제 데이터에 도달 할 수 있습니다.

여기에 이미지 설명 입력

이것은 전체 App.js 파일입니다.

const express = require('express');
const bodyParser = require("body-parser");
const feedRoute = require('./route/feed');
const cors = require("cors");

const app = express();

const allowedOrigins = ["http://localhost:3000", "http://localhost:8080"];

app.use(
    cors({
        origin: function(origin, callback) {
            if (!origin) return callback(null, true);
            if (allowedOrigins.indexOf(origin) === -1) {
                var msg =
                    "The CORS policy for this site does not " +
                    "allow access from the specified Origin.";
                return callback(new Error(msg), false);
            }
            return callback(null, true);
        }
    })
);

app.use(bodyParser.json()); //application json
app.use('/feed', feedRoute);
app.listen(8080);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Django 모델에서 데이터를 가져 오지 못했습니다.

분류에서Dev

x-editable 용 ajax에서 데이터를 가져 오지 못했습니다.

분류에서Dev

Crystal 보고서가 데이터를 가져 오지 못했습니다.

분류에서Dev

데이터베이스에서 데이터를 가져 오지 못했습니다.

분류에서Dev

Key Vault에서 인증서를 가져 오지 못했습니다.

분류에서Dev

libcurl에서 인증서 위치를 가져 오지 못했습니다.

분류에서Dev

apt-get 업데이트에서 오류를 가져 오지 못했습니다.

분류에서Dev

libusb : Android에서 구성 설명자를 가져 오지 못했습니다.

분류에서Dev

"작성기 템플릿 데이터를 가져 오지 못했습니다."

분류에서Dev

FirebaseError : 클라이언트가 오프라인이기 때문에 문서를 가져 오지 못했습니다.

분류에서Dev

Access 데이터베이스에 날짜를 추가하지 못했습니다.

분류에서Dev

속성을 가져 오지 못했습니다 : Ubuntu 16.04.3 LTS에 해당 인터페이스가 없습니다 ''

분류에서Dev

Hive-JDBC : Hive-JDBC 연결을 통해 하이브 테이블에서 데이터를 가져 오는 동안 행을 찾지 못했습니다.

분류에서Dev

W : 지오 지브라를 가져 오지 못했습니다.

분류에서Dev

Kubernetes containerd-비공개 레지스트리에서 이미지를 가져 오지 못했습니다.

분류에서Dev

Ansible : influxdb_write를 사용하려고 할 때 localhost에서 필수 Python 라이브러리 (influxdb)를 가져 오지 못했습니다.

분류에서Dev

Ubuntu 19.10에 rpcbind를 설치할 수 없습니다. E : 오류를 가져 오지 못했습니다.

분류에서Dev

Firebase에서 데이터를 가져 왔지만 색인 오류가 발생했습니다.

분류에서Dev

Python에서 Ubuntu '사이트 모듈을 가져 오지 못했습니다'오류 메시지

분류에서Dev

내 보낸 OVA를 xcp-ng 센터에서 가져 오지 못했습니다.

분류에서Dev

Apt-get이 오류 코드 404로 Ubuntu 서버에서 가져 오지 못했습니다.

분류에서Dev

Apt-get이 오류 코드 404로 Ubuntu 서버에서 가져 오지 못했습니다.

분류에서Dev

제목 이름이없는 Json 목록에서 개체를 가져 오지 못했습니다.

분류에서Dev

파이썬이 smtplib를 가져 오지 못했습니다.

분류에서Dev

데이터베이스에서 ID를 얻지 못했으며 숫자가 아닌 값이 발생하면 오류가 발생했습니다.

분류에서Dev

laravel에서 마지막 레코드 ID를 올바르게 가져 오지 못했습니다.

분류에서Dev

각도기가 목록에서 입력 텍스트를 가져 오지 못했습니다.

분류에서Dev

python3.6에서 다중 처리 대기열 객체를 가져 오지 못했습니다.

분류에서Dev

MySQLdb 데이터베이스에서 데이터를 가져 오지 못함

Related 관련 기사

  1. 1

    Django 모델에서 데이터를 가져 오지 못했습니다.

  2. 2

    x-editable 용 ajax에서 데이터를 가져 오지 못했습니다.

  3. 3

    Crystal 보고서가 데이터를 가져 오지 못했습니다.

  4. 4

    데이터베이스에서 데이터를 가져 오지 못했습니다.

  5. 5

    Key Vault에서 인증서를 가져 오지 못했습니다.

  6. 6

    libcurl에서 인증서 위치를 가져 오지 못했습니다.

  7. 7

    apt-get 업데이트에서 오류를 가져 오지 못했습니다.

  8. 8

    libusb : Android에서 구성 설명자를 가져 오지 못했습니다.

  9. 9

    "작성기 템플릿 데이터를 가져 오지 못했습니다."

  10. 10

    FirebaseError : 클라이언트가 오프라인이기 때문에 문서를 가져 오지 못했습니다.

  11. 11

    Access 데이터베이스에 날짜를 추가하지 못했습니다.

  12. 12

    속성을 가져 오지 못했습니다 : Ubuntu 16.04.3 LTS에 해당 인터페이스가 없습니다 ''

  13. 13

    Hive-JDBC : Hive-JDBC 연결을 통해 하이브 테이블에서 데이터를 가져 오는 동안 행을 찾지 못했습니다.

  14. 14

    W : 지오 지브라를 가져 오지 못했습니다.

  15. 15

    Kubernetes containerd-비공개 레지스트리에서 이미지를 가져 오지 못했습니다.

  16. 16

    Ansible : influxdb_write를 사용하려고 할 때 localhost에서 필수 Python 라이브러리 (influxdb)를 가져 오지 못했습니다.

  17. 17

    Ubuntu 19.10에 rpcbind를 설치할 수 없습니다. E : 오류를 가져 오지 못했습니다.

  18. 18

    Firebase에서 데이터를 가져 왔지만 색인 오류가 발생했습니다.

  19. 19

    Python에서 Ubuntu '사이트 모듈을 가져 오지 못했습니다'오류 메시지

  20. 20

    내 보낸 OVA를 xcp-ng 센터에서 가져 오지 못했습니다.

  21. 21

    Apt-get이 오류 코드 404로 Ubuntu 서버에서 가져 오지 못했습니다.

  22. 22

    Apt-get이 오류 코드 404로 Ubuntu 서버에서 가져 오지 못했습니다.

  23. 23

    제목 이름이없는 Json 목록에서 개체를 가져 오지 못했습니다.

  24. 24

    파이썬이 smtplib를 가져 오지 못했습니다.

  25. 25

    데이터베이스에서 ID를 얻지 못했으며 숫자가 아닌 값이 발생하면 오류가 발생했습니다.

  26. 26

    laravel에서 마지막 레코드 ID를 올바르게 가져 오지 못했습니다.

  27. 27

    각도기가 목록에서 입력 텍스트를 가져 오지 못했습니다.

  28. 28

    python3.6에서 다중 처리 대기열 객체를 가져 오지 못했습니다.

  29. 29

    MySQLdb 데이터베이스에서 데이터를 가져 오지 못함

뜨겁다태그

보관