Cross-Origin Request Blocked, 헤더 Access-Control-Allow-Origin 누락

Sreyas :

나는 반응 + 타이프 스크립트에 프론트 엔드가 있고 go iris에 백엔드가있는 블로그 응용 프로그램을 작성했습니다. 블로그 콘텐츠 가져 오기 요청을 받고 있습니다. 백엔드는 localhost : 5000 및 노드는 localhost : 3000에서 실행되지만 오류와 함께 실패합니다.

교차 출처 요청 차단됨 : 동일한 출처 정책이 http : // localhost : 5000 / getposts 에서 원격 리소스 읽기를 허용하지 않습니다 . (이유 : CORS 헤더 'Access-Control-Allow-Origin'누락).

백엔드에 CORS를 이미 구성했습니다.

Cors := cors.New(cors.Options{
        AllowedOrigins:   []string{"http://localhost:3000"},
        AllowCredentials: true,
        AllowedMethods:   []string{"GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS"},
        AllowedHeaders:   []string{"Cache-Control", "X-File-Name", "X-Requested-With", "X-File-Name", "Content-Type", "Authorization", "Set-Cookie", "Cookie"},
        Debug:            true,
    })
authConfig := basicauth.Config{
        Users:   map[string]string{USER_NAME: PASSWORD},
        Realm:   "Authorization Required", // defaults to "Authorization Required"
        Expires: time.Duration(30) * time.Minute,
    }

authentication := basicauth.New(authConfig)
app := iris.New()
app.Use(Cors)
app.Get("/getposts", authentication, GetPostsHandler)

이것이 내가 요청을 보내는 방법입니다.

fetch("http://localhost:5000/getposts", {
  method: "get",
  credentials: "include",
  mode: "cors",
  headers: [
    ["Content-Type", "application/json"],
    ["Authorization", "Basic " + btoa("Sreyas:password")]
  ]
})
  .then(response => {
    if (response.ok) {
      response.json().then(rawdata => {
        this.setState({ blogdata: rawdata });
      });
    } else {
      console.log("No posts");
      this.setState({ blogdata: null });
    }
  })
  .catch(error => {
    console.log("Server Error");
    this.setState({ blogdata: null });
  });

이 문제를 해결하기 위해 몇 시간 동안 검색하고 시도했지만 운이 없었습니다.

Sreyas :

nginx를 사용하라는 그의 제안에 대해 Slotheroo에게 감사 드리며 이것이 제가이 문제를 해결할 수있는 유일한 방법이었습니다. 저는 nginx를 사용하여 요청을 프록시하고 프런트 엔드와 백 엔드를 8000 포트로 라우팅했습니다. 내 nginx 서버 구성 샘플과 코드 변경 사항을 여기에 남겨 두어 향후 누구에게나 도움이 될 것입니다. :)

( "localhost"와 같은 루프백 IP를 사용하면 요청을로드하고 보낼 때 성능에 영향을 미칠 수 있으므로 이러한 성능 문제를 극복하기 위해 시스템의 정확한 IP를 사용합니다.)

nginx.conf

server {
        listen       8000;
        server_name  localhost;

        location / {
            proxy_pass http://localhost:3000;
        }
        location /getposts {
            proxy_pass http://localhost:5000/getposts;
        }

    }

백엔드의 허용 된 Orgins에 localhost : 8000을 추가했습니다.

AllowedOrigins:   []string{"http://localhost:8000"},

요청은 이제 8000 포트로 전송됩니다.

fetch('http://localhost:8000/getposts',{
                    method: 'get',
                    credentials: "include",
                    mode: "cors",
                    headers: [
                        ["Content-Type", "application/json"], 
                        ["Authorization","Basic "+btoa('Sreyas:password')],
                    ]     
            }).then((response) => {
                if(response.ok){
                    response.json().then(rawdata =>{
                        this.setState({blogdata:rawdata})
                    })
                }else{
                    console.log("No posts")
                    this.setState({blogdata:null})
                }
            }).catch(error => {
                console.log("Server Error")
                this.setState({blogdata:null})
              })
    }

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Cross-Origin Request Blocked : & Reason : CORS 헤더 'Access-Control-Allow-Origin'누락

Spring Boot-Cross-Origin Request Blocked (이유 : CORS 헤더 'Access-Control-Allow-Origin'누락)

간헐적 오류 : Cross-Origin Request Blocked-CORS 헤더 'Access-Control-Allow-Origin'누락

Cross-Origin Request Blocked : 동일한 출처 정책이 원격 ............... CORS 헤더 'Access-Control-Allow-Origin'읽기를 허용하지 않습니다.

이유 : CORS 헤더 'Access-Control-Allow-Origin'누락 / Spring Boot

Wikipedia API 응답에서 CORS 헤더 'Access-Control-Allow-Origin'누락

CORS 헤더 'Access-Control-Allow-Origin'누락 Laravel 5.4

여러 CORS 헤더 'Access-Control-Allow-Origin' 허용되지 않음 / CORS 헤더 'Access-Control-Allow-Origin' 누락)

파이썬 이브에 게시 할 때 CORS 헤더 'Access-Control-Allow-Origin'누락

Amazon S3 버킷에서 누락 된 Access-Control-Allow-Origin 헤더

yii2 restful api : (이유 : CORS 헤더 'Access-Control-Allow-Origin'누락)

Firebase 실시간 데이터베이스 - CORS 헤더 'Access-Control-Allow-Origin' 누락

Access-Control-Allow-Origin '누락-reactjs

Azure No 'Access-Control-Allow-Origin'헤더

S3-Access-Control-Allow-Origin 헤더

'Access-Control-Allow-Origin'헤더 없음-Laravel

다중 Access-Control-Allow-Origin 헤더

$ .post 'Access-Control-Allow-Origin'헤더 없음

CORS 헤더 'Access-Control-Allow-Origin'이 헤더에서 시작되지만 누락 됨

"cors 헤더 'access-control-allow-origin' 누락"은 출처가 허용되더라도 요청을 거부합니다.

localhost의 다른 포트에 요청할 때 CORS 헤더 'Access-Control-Allow-Origin'누락

AngularJS 웹 앱에서 CORS 헤더 'Access-Control-Allow-Origin'이 누락되었습니다.

Rails 5.2 Active Storage 직접 업로드 실패 : CORS 헤더 'Access-Control-Allow-Origin'누락

.NET Core API가 오류를 포착 할 때 CORS 헤더 'Access-Control-Allow-Origin'누락

CORS 오류-응답 헤더에 Access-Control-Allow-Origin 누락 (스페인어 IP에서만)

Angularjs post request error No 'Access-Control-Allow-Origin'

Angularjs post request error No 'Access-Control-Allow-Origin'

첫 번째 응답에서 Access-Control-Allow-Origin 누락

CORS 보안 : 요청 헤더에서 Access-Control-Allow-Origin을 Origin으로 설정