2016-10-13 2 views
3

데이터를 검색하기 위해 서버와 프런트 엔드 클라이언트에서 실행중인 API를 실행하고 있습니다. 크로스 도메인 문제에 대한 조사를 해보았습니다. 그러나 나는 무엇이 바뀌 었는지 확신하지 못했다. 지금은 콘솔에서이 오류를 얻고있다 :Express JS : 요청한 리소스에 'Access-Control-Allow-Origin'헤더가 없습니다.

은 XMLHttpRequest https://api.mydomain/api/status를로드 할 수 없습니다. 아니요 요청한 리소스에 'Access-Control-Allow-Origin'헤더가 있습니다. 따라서 출처 'http://beta.mydomain.com'은 허용되지 않습니다. .

var user = { 
    'uid' : '12345' 
}; 
$.ajax({ 
    data: user, 
    method: 'POST', 
    url: 'https://api.mydomain/api/status', 
    crossDomain: true, 
    done: function() { 
    }, 
    success: function (data) { 
     console.log(JSON.stringify(data)); 
    }, 
    error: function (xhr, status) { 

    } 
}); 

나는 시도했다 :

var express = require('express'); 
var router = express.Router(); 
var Assessment = require('../app/models/assessment'); 

router.all('*', function (req, res, next) { 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS'); 
    res.header('Access-Control-Allow-Headers', 'Content-Type'); 
    next(); 
}); 


router.post('/api/status', function (req, res, next) { 
    getStatus.getStatus(req, res, Assessment); 
}); 

module.exports = router; 

그리고 다음과 같은 자바 스크립트 그 길에 Ajax 호출을 만들기 : 응답은 나는 다음과 같은 경로의 파일을 한 502

HTTP 상태 코드를했다 : 요청하는 도메인을 'Access-Control-Allow-Origin'헤더에 넣기 express 용 cors 모듈 사용 내 router.all 기능 배치하기 i nside 미들웨어

요청한 도메인은 HTTP이고 api 도메인은 HTTPS입니다. 그러나 HTTP를 사용하는 동안 작동하도록했습니다.

누구나 'Access-Control-Allow-Origin'헤더가 전송되지 않는 이유에 대한 통찰력이 있습니까?

는,이 같은 인스턴스 자체를 표현하는이 도움이

var express = require('express'); 
var app = express(); 
var Assessment = require('../app/models/assessment'); 

app.use(function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    next(); 
}); 

app.post('/api/status', function (req, res, next) { 
    // your code goes here 
}); 

module.exports = app; 

희망을 설정하는 시도 할 수 있습니다, 대신 사용자의 명시 경로로 요청 헤더를 설정하는 당신에게

답변

8

감사합니다!

+0

고맙습니다. 너는 구세주 야. –

+0

@Anil Kumar, 도움이 된 것을 기쁘게 생각한다! –

관련 문제