데이터를 검색하기 위해 서버와 프런트 엔드 클라이언트에서 실행중인 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;
희망을 설정하는 시도 할 수 있습니다, 대신 사용자의 명시 경로로 요청 헤더를 설정하는 당신에게
고맙습니다. 너는 구세주 야. –
@Anil Kumar, 도움이 된 것을 기쁘게 생각한다! –