2013-06-25 167 views
0

我有这样的一个模板的text/html,而不是图像/ GIF:

<img class="picto" 
    ng-repeat="module in modules" 
    ng-src="{{module.Source}}" 
    title="{{module.Title}}" 
    ng-click="module.handler();"/> 

当我使用静态代码设置$scope.modules阵列,一切工作正常,并且通过使用媒体类型“image/gif”(用于gif文件)的GET获取图像。然而,当我检索使用$http.get()同一阵列 - 见下面的代码 - ,角尝试使用媒体类型“text/html的”,这导致一个404错误来检索图像:

$http.get('/api/modules', {}) 
    .success(function (data) { 
     $http.defaults.get = { 'Content-Type': 'image/gif' }; // apparently useless 
     $scope.modules = data; 
     for (var module in $scope.modules) { 
      $scope.modules[module].handler = function() { alert(this.Id); }; 
     } 
     delete $http.defaults.get; // ...useless 
    }); 

尝试添加头默认也没有帮助(// apparently useless)。你能看到有什么问题吗?

回答

0

Accept: 'image/gif'而不是Content-Type: 'image/gif'来试一下。

Content-Type标头描述了您发送到服务器的数据格式。 Accept标题描述了您接受服务器响应的数据格式。

+0

谢谢。不幸的是,这并没有解决我的问题。但是,你给了我一个暗示,告诉我这是一个与媒体类型无关的问题。我在浏览器跟踪日志中看到的是答案的媒体类型。由于返回代码是404,并且响应包含错误消息,因此“text/html”是响应的正确类型。我错误地认为它显示了与请求一起发送的接受的媒体类型头。 – user1558628

+0

现在的问题似乎与AngularJS没有关系,而是与ASP.Net MVC/WebAPI处理请求的方式有关。 – user1558628

+0

啊,好的。那么我无法帮到你,但我很高兴这个问题没有帮助。 – rtcherry