gpt4 book ai didi

javascript - express POST req.body 解析器为空

转载 作者:行者123 更新时间:2023-11-30 21:19:14 25 4
gpt4 key购买 nike

我在 Stack Overflow 上看到了类似的问题,并找到了使用以下方法的解决方案:

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

但是在打印日志时 req.body 是空白的。

app.js 内容:

var express = require('express');
var path = require('path');
var app = express();
var bodyParser = require('body-parser');

// Define the port to run on
app.set('port', 8888);

app.use(express.static(path.join(__dirname, '/webapp/public')));

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.post('/getsolution', function (req, res) {
console.log("request body is",req.body); //----req.body is blank here
});

angular的post请求代码如下

var parameters = JSON.stringify({ "urlPath": $location.path()});
$http.post('http://localhost:8888/getsolution/', parameters)
.then(function (response) {
if (response.data == "") {
$window.location.href = 'http://localhost:8888/';
} else {
$scope.puzzle = response.data;
$scope.puzzleSolution = response.data.solution;
}
}).catch(function onError(response) {
$window.location.href = 'http://localhost:8888/';
});

控制台打印日志

request body is {}

当与下面的代码片段一起使用时,它不起作用

var app = angular.module('puzzleappsolution', [], function ($locationProvider) {
$locationProvider.html5Mode(true);
});//----->It is now working

但是在下面使用时它是有效的

var app = angular.module('puzzleappsolution', []);

最佳答案

Content-Type header 添加到您的 Angular 请求中:

$http.post('http://localhost:8888/getsolution/', parameters, {
headers: {
'Content-Type': 'application/json'
}
})

关于javascript - express POST req.body 解析器为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45350347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com