2017-10-18 1 views
0

sails.js 앱을 생성하고 다음과 같이 테스트 API를 생성했습니다.SailsJS - CORS - 'Access-Control-Allow-Origin'헤더에 잘못된 값이 있습니다. '

module.exports = { 
    test:function (req, res) { 
     return res.ok({success: true}); 
    }, 
} 

sails 응용 프로그램은 192.168.3.208:1337에서와 독립 로컬 컴퓨터에서 호스팅됩니다.

CORS 구성은 다음과 같습니다.

module.exports.cors = { 
    origin: '*', 
    credentials: true, 
}; 

내가 API에 내 로컬 컴퓨터 (192.168.3.210)에서 간단한 AJAX 전화를 걸

,

$.ajax({ 
    type: 'GET', 
    url: 'http://192.168.3.208:1337/api/test', 
    dataType: 'json', 
    success: function(data) { 
     console.log(data); 
    }, 
    failure: function(data) { 
     console.log(data); 
    } 
}); 

나는 다음과 같은 오류를 얻을

http://192.168.3.208:1337/api/test를로드하지 못했습니다

다음 'Access-Control-Allow-Origin'헤더에 잘못된 값 ''이 (가) 있습니다. 'http://localhost'원본은 액세스 할 수 없습니다.

HTML 페이지에 내가 여기 실종 무엇 포트 80

에서 아파치와 호스팅?

+1

당신은'기원을 결합하려고하지해야하는 이유에 대한 설명은 https://sailsjs.com/documentation/concepts/security/cors#?warning를 참조하여 문제를 해결 : '* ''자격증 명 : true'. 테스트 중에''origin : 'http : // localhost /''를 설정하고 작동하는지 확인해보십시오. 그리고 프로덕션에서는 자격 증명이있는 요청을 허용하려는 실제 출처로 'origin'값을 변경합니다. 일반적으로 임의의 출처로부터 자격 증명이 요청되는 것을 허용하지 않으려합니다. – sideshowbarker

+1

'cors' 설정에'allRoutes : true,'를 추가하십시오. – MjZac

답변

1

module.exports.cors = { 
    origin: '*', // Required whitelist 
    credentials: true, 
    headers: ['Authorization', 'content-type', 'user-agent'] 
};