반응형
프로젝트를 진행하다가 기존 spring 프로젝트 외에 node.js로 백엔드 소스를 추가적으로 구현했다.
기존 프로젝트에 spring백엔드와 jsp파일로 프론트엔드가 함께 있던 구조였는데,
새롭게 node.js가 추가되면 어떻게 호출해야하지? 하는 의문점이 생겼어서 정리하게 되었다.
결론
그냥 서버에 둘다 띄워두고 ajax로 호출했다.
사용한 방법
기존 spring 프로젝트는 8080으로 실행되고 있었고,
새로운 node.js가 추가되면서 3000포트를 사용하게 되었다.
호출하게되는 jsp 파일 내 ajax에서
$.ajax({
url : 'http://10.188.111.11:3000/upload'
, data: formData
, enctype: 'multipart/form-data'
, async: false
, type: 'POST'
, cache: false
, processData: false
, contentType: false
, success: function(resData) {
//alert("저장되었습니다.");
...
이런식으로 호출하는 url을 node.js 서버가 사용하는 주소에 api명으로 호출하면 되었다.
대신 이렇게 다른 도메인에서 호출했을때는 CORS 관련 설정을 해야한다.
CORS관련 설명은 구글링하면 더 자세히 설명해놓은 게시글이 많으니 참고하면 될거 같다..ㅎ
node.js 소스에서
var app = express();
// 외부 도메인 허용처리
app.use(function (req, res, next) {
var allowedOrigins = ["http://helloworld.com", "http://localhost:8080"];
var origin = req.headers.origin;
res.setHeader("Content-Type", 'application/json; charset="utf-8"');
if (allowedOrigins.indexOf(origin) > -1) {
res.setHeader("Access-Control-Allow-Origin", origin);
}
res.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
next();
});
이렇게 외부 도메인 허용 처리를 해주어야 한다.
allowedOrigins에 허용되어야 하는 도메인을 호출하는 도메인 주소를 넣어주면 된다. (localhost는 배포시 제거한다)
반응형
'Web 개발' 카테고리의 다른 글
오프라인 환경(폐쇄망)에 node랑 yarn 설치하기 (4) | 2022.12.09 |
---|---|
node.js 파일 업로드 모듈 정리(multer, connect-busboy) (중간저장 없이 업로드) (0) | 2022.12.09 |
크롬에서 캐시 비우기 및 강력 새로고침 (2) | 2022.12.08 |
이중화 되어있는 웹서버로 ajax 호출하기 (0) | 2022.12.08 |
오프라인 환경(폐쇄망)에서 npm 패키지 install 하기(yarn offline) (1) | 2022.12.06 |