遇到400错误请求(Angular+WebAPI)的问题
Having trouble with a 400 Bad Request (Angular + WebAPI)
我是通过尝试构建一个跟踪漫画的数据库来学习的。我可以发布新的漫画,并且毫不费力地获得它们。但当我想PUT时,我遇到了一个问题。我不断收到一个糟糕的请求,但我认为所有信息都是正确的。我想我所有的信息都匹配,但我不确定还有什么错。
我所要做的就是更新漫画列表,这样你就可以跟踪漫画的实体和数字副本。
提前谢谢。
这是我的DBController.cs:
[Authorize]
public IHttpActionResult Put(Comic comic)
{
string UserId = User.Identity.GetUserId();
if (UserId == null) return BadRequest("You Must Be Logged In to Edit");
else if (comic.UserId == UserId || User.IsInRole("Admin"))
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
var currentComic = db.Comics.Find(comic.ComicId);
currentComic.IsDigital = comic.IsDigital;
currentComic.IsPhysical = comic.IsPhysical;
db.SaveChanges();
}
return Ok();
}
else return BadRequest("Insufficient privileges");
}
}
这是我的CollectionController.js:
$scope.physical = false;
$scope.digital = false;
$scope.updateComic = function (ComicId) {
var comic = {
ComicId: ComicId,
IsPhysical: $scope.physical,
IsDigital: $scope.digital,
}
return MarvelApiFactory.editComic(comic).then(function (data) {
})
}
还有我的ApiFactory.js
var editComic = function (comic) {
var deferred = $q.defer();
$http({
url: '/api/ComicDB',
method: "PUT",
headers: { Authorization: "Bearer " + localStorage.getItem('token') },
data: comic
}).success(function () {
deferred.resolve();
}).error(function () {
deferred.reject();
})
return deferred.promise;
}
return {
editComic: editComic,
}
这是我的.html:
<button class="btn btn-danger" ng-click="updateComic(x.ComicId)">Save</button>
最后,我的错误信息。对不起,不确定你需要什么。昨晚,当我弄清楚这一点时,我点击了网络选项卡,发现了内部的异常等等。要么这次我找不到,要么我一个也没找到。但这是来自我的JS控制台:
PUT http://localhost:53612/api/ComicDB 400 (Bad Request)angular.js:9827 (anonymous function)angular.js:9628 sendReqangular.js:9344 serverRequestangular.js:13189 processQueueangular.js:13205 (anonymous function)angular.js:14401 Scope.$evalangular.js:14217 Scope.$digestangular.js:14506 Scope.$applyangular.js:21440 (anonymous function)jquery-1.10.2.js:5109 jQuery.event.dispatchjquery-1.10.2.js:4780 elemData.handle
在计算机上打开applicationHost.config文件运行Web Api应用程序。该文件位于%userprofile%''documents''IIS{Express|8}''config"。
向下滚动到IIS的底部applicationHost.config文件并查找处理程序条目以开头
<add name="ExtensionlessUrl-Integrated-4.0"...`.
在"verb"属性中添加PUT和DELETE,因此"verb"属性看起来像:verb="GET,HEAD,POST,DEBUG,PUT,DELETE"
相关文章:
- angular js密码强度显示问题
- 使用angular.js问题的JavaSpringREST服务
- Angular UI启动日期选择器问题
- 将输入值设置为ng模型属性[Angular]时出现问题
- 遇到400错误请求(Angular+WebAPI)的问题
- Angular Tour指令问题
- 使用ng-include渲染Angular模板时出现问题
- Angular 1.X,webpack和ngtemplate加载程序问题
- Angular.js常量问题
- Angular.js与$sce的问题阻止我将想要的内容传递到指令中
- Angular.js的多个rest调用范围问题
- Angular-$http范围问题
- Angular中的ajax调用和路由问题
- Ionic和Angular的基本问题's指令
- IE9中的Angular JS页面加载问题
- angular 2和谷歌地图api的typescript逻辑问题
- angular单元测试http请求问题
- 在SELECT字段中动态加载内容的问题[ANGULAR JS]
- 作用域问题:Angular指令的多个实例具有隔离作用域
- Javascript数组中文本替换的问题(Angular)