【发布时间】:2015-05-03 00:25:08
【问题描述】:
我的 ionic 应用中有以下代码:
var req = {
method: 'PUT',
dataType: "json",
url: loginservice.getServerAPI()+'/restaurants/'+$scope.currentRu.id+'/menu',
data: response,
headers: {
"Content-Type" : "application/json",
"Authorization" : "Bearer "+loginservice.gettoken()
}
};
$http(req)
.success(function (data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
$state.go('wtf.thanks');
return data;
})
.error(function (data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
console.log(data);
return "error";
});
};
每次,我得到一个错误,每次都不同,而请求完全相同。
这里是相关的API代码:
routes/restaurants.js:
router.route('/:id/menu')
.put(restaurantController.updateRestaurantMenu);
controllers/restaurant.js:
exports.updateRestaurantMenu = function(req, res) {
RestaurantModel.findOne({'id': req.params.id}, function(err, restaurant) {
if (!err) {
// update restaurant queue
restaurant.menus = req.body.menus;
restaurant.save(function(err) {
if (!err) {
return res.send(restaurant);
} else {
console.log(err);
return res.status(400).send(err);
}
});
} else {
console.log(err);
return res.status(400).send(err);
}
});
};
我在日志中得到的只是:
...
OPTIONS /api/restaurants/174/menu 200 1.742 ms - 3
OPTIONS /api/restaurants/174/menu 200 0.928 ms - 3
...
而不是类似的东西:
...
OPTIONS /api/restaurants/174/menu 200 1.742 ms - 3
PUT /api/restaurants/174/menu 200 1.742 ms - 3
OPTIONS /api/restaurants/174/menu 200 1.742 ms - 3
PUT /api/restaurants/174/menu 200 0.928 ms - 3
...
CORS 已处理。
app.js:
// allow cross domain
var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.set('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Authorization');
next();
};
app.use(allowCrossDomain);
就目前而言,它是唯一的PUT 请求以这种方式运行。我还有其他 PUT 请求可以正常工作。
【问题讨论】:
标签: angularjs node.js ionic-framework