【发布时间】:2014-05-07 10:54:06
【问题描述】:
当我尝试将数据发布到RestAPI 时,我在我的应用程序中使用AngularJS 它发送空数据
这是我的 API 功能
[HttpPost]
public string UpdateEmployee(Employees emp)
{
using (_session = MvcApplication.Store.OpenSession())
{
var query = _session.Load<Employees>(emp.Id);
query.JobTitle = emp.JobTitle;
query.Name = emp.Name;
query.Owner = emp.Owner;
query.Phone = emp.Phone;
query.SearchedByName = emp.SearchedByName;
query.CanLogin = emp.CanLogin;
query.Gender = emp.Gender;
query.About = emp.About;
query.Email = emp.Email;
_session.SaveChanges();
}
return emp.Id;
}
AngularJS 代码:
var updateEmployee = function(emp) {
var deffered = $q.defer();
var data = JSON.stringify(emp);
console.log(emp);
console.log(data);
$http({
method: 'POST',
url: '/api/Servicesapi/UpdateEmployee/',
data: emp,
headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8' }
}).success(
function() {
deffered.resolve();
})
.error(
function() {
//Error
deffered.reject();
});
return deffered.promise;
};
第一个 console.log(emp) 打印数据,但第二个 console.log(data) 打印空数组 []
API函数在执行上述角度函数但收到Employees的空对象时触发。
console.log(emp):
About: "hello this is about"
Bid: "businesses/129"
CanLogin: true
Email: "abc@yahoo.com"
Gender: "Male"
Id: "employees/193"
JobTitle: "Developer"
Name: "abc"
Owner: true
Phone: "+123456789"
SearchedByName: true
Service: Array[0]
length: 0
__proto__: Array[0]
【问题讨论】:
-
你的 emp 中有 JSON 数据吗?函数未序列化为 JSON。你能显示 emp 里面是什么吗?
-
你有错误的内容类型,如果你发送 JSON 它应该是 application/json。
-
改了类型还是不行
-
如果我将类型更改为
application/json,则对象简单地为空,而如果类型为application/x-www-form-urlencoded则对象为空意味着对象的所有值都包含空 -
您的 REST 后端是否需要 JSON?
标签: asp.net-mvc angularjs