我在angularJS工厂中有这个代码:
myFactory.addNC = function (n) {
return $http.post('/api/addNC/', { c: n }).then(function (data) {
return data;
});
}
MVC ApiController:
[HttpPost]
public void addNC([FromUri]string c = null)
{
...
}
但是' c' param是null,为什么?我在FireBug中看到该值正在发布。
另外,如果我声明像public void addNewCat([FromUri]string c)
这样的参数我会收到404错误 - 为什么?
答案 0 :(得分:1)
基本上你期望的是角度js $ http.post的行为就像jQuery.ajax()。情况并非如此,因为jquery.ajax使用contentType = x-www-form-urlencoded进行传输,而angular总是使用contentType = application / json进行传输。我会查看您的API并检查您是否可以传输内容类型为json的请求。浏览器中有附加组件可用于促进此操作。您还可以通过扩展它来确保Angular的$ http.post像jquery.ajax调用一样来解决这个问题。有关详细信息,请参阅以下link