【发布时间】:2016-12-27 14:48:25
【问题描述】:
首先我有我的 Angular 应用程序:
var app = angular.module('app', []);
angular.module('app.controllers', []);
app.config(function($httpProvider){
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};
});
这是一个角度控制器:
angular.module('app').controller('loginController', ['$scope', '$http', function($scope, $http){
$http({
method: 'POST',
url: 'https://xxx-xxx.c9users.io:xxxx/api/registerUser',
headers: { 'Content-Type': 'application/json' },
data: { test: 'something' }
});
}]);
然后是我的 nodejs 代码:
var express = require('express');
var app = express();
var bodyParser= require('body-parser');
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");
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
next();
});
app.use(bodyParser.json());
var server = app.listen(process.env.PORT, function () {
var host = server.address().address
var port = server.address().port
});
app.post('/api/registerUser', function (req, res) {
//req.body.test do something..
});
所以每当我尝试将此请求发送到节点服务器时。我在浏览器控制台中收到以下错误:
*选项https://xxx-xxx.c9users.io:xxx/api/registerUser *
XMLHttpRequest 无法加载 https://xxx-xxx.c9users.io:xxxx/api/registerUser。预检响应包含无效的 HTTP 状态代码 404
而且服务器永远不会收到请求。但是,如果我这样称呼它:
$http.post('https://xxx-xxx.c9users.io:xxxx/api/registerUser');
服务器接收请求不会有任何问题,但没有数据。我在这里做错了什么?
【问题讨论】:
-
可能缺少 OPTIONS 的路线?当您尝试此解决方案时发生了什么? stackoverflow.com/questions/33660712/…
-
@OlaEkdahl 我现在已经尝试过了,并在上面添加了它。但恐怕没有效果。
标签: angularjs node.js http http-post