2013-06-25 441 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