在$http中使用了transformRequest来转换请求数据的格式,但是发现,无论即使我返回的还是原来的数据,只要使用了这个函数,后端就会报错.请求是发送了的.代码如下:
var httpGet = angular.module('HttpGet',[]);
//使用这种方式也是不行哒~~~
/*httpGet.config(function($httpProvider){
$httpProvider.defaults.transformRequest=function(data){
console.log(data);
return data
}
});*/
httpGet.factory('getData',function($http,$q){
return function(){
var defer = $q.defer();
$http({
method:'post',
url:'/api/user',
data: {name:"code_bunny"},
headers: {'Authorization':'code_bunny'},
transformRequest:function(data){
return data
}
}).success(function(data,status,headers,config){
defer.resolve(data);
}).error(function(data,status,headers,config){
defer.reject(data)
});
return defer.promise
}
});
为了测试,我不对请求数据做处理,直接返回data,请求数据确实是发送了的.但是node后端却报错了.错误是 "unexpected token o",但是把transformRequest项删掉,一切正常.请问是什么原因.
node代码:
var express = require('express');
var app = express();
app.use(express.bodyParser());
app.use(express.static(__dirname+''));
app.post('/api/user',function(req,res){
console.log(req.body);
res.send(req.body)
});
app.listen(3000);
谢谢大家~~~
看情况似乎是有一个token,然后
transformRequest
之后导致token解析出错。不知道是不是这个引起的 (/ □ )。