4
나는 nodejs - 익스프레스 서버 이 Nodejs하기 (1) MongoDB를하고 웹 서버 와 통신 (2)에서 nodejs-명시 AngularJS와와. 내가 POST 요청 1> 2를 만들기 위해 노력하고 있지만이 405 Method Not Allowed
무엇입니까 (우편 배달부를 사용하여 시도)와 내가 헤더 탭을 선택하면 그것을 보여줍니다 Allow →GET, HEAD, OPTIONS
POST 요청
app.js - 포스트 방법 1 :
function sendToDashboard(jsonData) {
console.log ("I am here in node: ", jsonData);
request({
uri: "http://******.com:9000/getQueryJson",
method: "POST",
timeout: 10000,
followRedirect: true,
maxRedirects: 10
}, function(error, response, body) {
console.log(body);
});
}
을
서버/app.js는 - 2에서 방법을 얻을 :
var bodyParser = require("body-parser"); // Require Body parser module
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var express = require('express');
var path = require('path');
var app = require('express')(); // Require Express module
var http = require('http').Server(app); // Http server
var bodyParser = require("body-parser"); // Require Body parser module
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.all('*', function(req, res,next) {
/**
* Response settings
* @type {Object}
*/
var responseSettings = {
"AccessControlAllowOrigin": req.headers.origin,
"AccessControlAllowHeaders": "Content-Type,X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name",
"AccessControlAllowMethods": "POST, GET, PUT, DELETE, OPTIONS",
"AccessControlAllowCredentials": true
};
/**
* Headers
*/
res.header("Access-Control-Allow-Credentials", responseSettings.AccessControlAllowCredentials);
res.header("Access-Control-Allow-Origin", responseSettings.AccessControlAllowOrigin);
res.header("Access-Control-Allow-Headers", (req.headers['access-control-request-headers']) ? req.headers['access-control-request-headers'] : "x-requested-with");
res.header("Access-Control-Allow-Methods", (req.headers['access-control-request-method']) ? req.headers['access-control-request-method'] : responseSettings.AccessControlAllowMethods);
if ('OPTIONS' == req.method) {
res.send(200);
}
else {
next();
}
});
app.post('/getQueryJson', function(request, response) {
console.log ("I got here");
if(response.statusCode == 200) {
console.log("TESTING......")
console.log("This is your request: ", request.body);
console.log("This is your request: ", JSON.stringify(request.body))
response.send("Query Received");
}else{
response.send(" Error code: " + response.statusCode);
}
});
http.listen(9000,function(){
console.log("Connected & Listen to port 9000");
});
파일 구조 :
(서버 1)
(서버 2)
내 방법을 찾을 수없는 이유는 어떤 생각? 어떤 도움이라도 대단히 감사하겠습니다!
당신의'app.post'이'app.all' 전에 가야합니다,하지만 난 100 % 확실하지 않다 확신 ..... – Claies
내가 당신을 생각 응답에서 상태 코드를 '읽을 수 없습니다.' response.status (200)와 같은 상태 코드 만 '설정'할 수 있습니다. 그것은 우리가 설정 한 것입니다. if-else를 피하고 response.status (200) .end (JSON.stringify (request.body))를 수행하십시오. –