gpt4 book ai didi

json - Express Angular - 从 POST 接收奇怪的 JSON

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:35 24 4
gpt4 key购买 nike

我尝试学习 Express/NodeJS,我使用 c9 ide。为了使用 Passport 框架进行身份验证,我尝试实现一个非常简单的登录表单,但是当我尝试将登录信息发送到我的服务器时,他收到如下数据:

{ '{"username":"login","password":"pwd"}': '' }

而不是我在发送之前记录的数据:

OBJECT {用户名:“login”,密码:“pwd”}

JSLint 对我说这是一个有效的 JSON,为什么它作为 json 对象属性的键发送?

这是我的 Express 服务器:

var application_root = __dirname,
express = require("express"),
path = require("path"),
mongoose = require('mongoose');

var app = express();
mongoose.connect('mongodb://' + process.env.IP + '/database');
app.configure(function () {
app.use(express.bodyParser());
app.use(express.methodOverride());

var allowCrossDomain = function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");

if ('OPTIONS' == req.method) {
res.send(200);
} else {
next();
}
};

app.use(allowCrossDomain);
app.use(app.router);
app.use(express.static(path.join(application_root, "public")));
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.post('/login', function(req, res, next){
var obj = req.body;
console.log(obj);
});

app.listen(process.env.PORT, process.env.IP);

这是我的 html 表单:

<div>
Username :
<input ng-model="user.username"/>
Password :
<input type="password" ng-model="user.password"/>
<div class="button" ng-click="login()">Login</div>
</div>

这是我的 angularjs 代码:

var app = angular.module('app', []).config( function($locationProvider, $routeProvider, $httpProvider) {

$routeProvider
.when('/', {
templateUrl: '/partials/home.html',
controller : 'HomeCtrl'
})
.otherwise({
redirectTo: '/'
});

$locationProvider.html5Mode(true);
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$httpProvider.defaults.withCredentials = true;

}).controller('HomeCtrl', function($scope, $http) {

$scope.login = function() {
$http.post('http://website.io/login', $scope.user).success(function(data) {
console.log(data);
});
};
})

这可能是一个简单的问题,但我的大脑现在卡住了......抱歉我的英语不好,并感谢您的期待。

最佳答案

尝试发布 angular.toJson($scope.user);

我认为这是因为它是一个包裹的 Angular 对象

关于json - Express Angular - 从 POST 接收奇怪的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16708857/

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