[英]how set charset utf-8 to header to $http GET and POST in angular js
我的服务职能是:
function getHeader() {
return {
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'authorization': $cookieStore.get('loggedin').token,
'region': String($cookieStore.get('loggedin').roles[0].region),
'branch': String($cookieStore.get('loggedin').roles[0].branch)
}
};
}
function getCompletedPlateReq() {
var deferred = $q.defer();
$http.get('/client/get/reqplate/completed', {}, getHeader()).success(function (data) {
if (data) deferred.resolve(data);
}).error(function (err) {
if (err) deferred.reject();
});
return deferred.promise;
}
这些是PlateService函数,当我尝试调用getCompletedPlateReq()函数时,例如:
PlateService.getCompletedPlateReq().then(function (data) {
data.platePocess = 'completed';
$scope.completedPlates = data;
setDataToPnl(data);
})
我收到此错误:
Error: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 'ŞanlıUrfa' is not a valid HTTP header field value.
at angular.js:10990
at forEach (angular.js:355)
at angular.js:10988
at sendReq (angular.js:10841)
at serverRequest (angular.js:10551)
at processQueue (angular.js:15122)
at angular.js:15138
at Scope.$eval (angular.js:16384)
at Scope.$digest (angular.js:16200)
at Scope.$apply (angular.js:16492)
我在getHeader()函数中添加了“ Content-type”,但由于土耳其字符而无法正常工作。 当我从mongoDB将'ŞanlıUrfa'的值更改为'SanliUrfa'时,该服务正常工作。 但是我想在标题中使用土耳其语字符。 我该如何处理这个问题。 感谢帮助...
我在PlateBusiness的后端功能:
exports.getCompletedPlateReq = function (req, res) {
const query = PlateRequest.find();
query.where('process').equals('produced_montaged');
query.where('is_deleted').ne(1);
if (req.headers.region !== undefined)
query.where('region').equals(req.headers.region);
if (req.headers.branch !== undefined)
query.where('branch').equals(req.headers.branch);
query.where('status').equals(1);
query.exec(function (err, data) {
if (err) return res.status(500).send(err);
return res.status(200).send(data);
});
}
路由器部分是:
app.get('/get/reqplate/completed', requireAuth, PlateBusiness.getCompletedPlateReq);
似乎您需要在正文中传递某些内容才能使用标头的内容类型。 试试这样。
$http({
url: '/client/get/reqplate/completed',
method: 'POST',
data: '',
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
...
}
}).success(function(response){
//consume success response
}).error(function(error){
//consume error response
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.