我有一個頁面locations.aspx,它在locations.aspx/getData中有一個方法。當我使用的代碼來自aspx方法的角度js http請求
$http.jsonp($scope.url)
.success(function (data, status, headers, config) {
alert(data);
}).error(function (data, status, headers, config) {
$scope.status = status;
});
與$ scope.url是locations.aspx /的getData它加載aspx頁面的HTML頁面,但不訪問的方法。我可以訪問該方法使用
$.ajax({
type: "POST",
url: $scope.url,
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (p) {
var temp = $.parseJSON(p.d);
$scope.allItems.push(temp);
},
error: function() {
alert('error');
}
});
但數據永遠不會更新或綁定在視圖端。在HTML的一個例子是
<select ng-model="selectLocation" id="selectLocation" ng-change="onLocationChange()">
<option></option>
<option ng-repeat="l in allItems">{{l.location}}</option>
</select>
Ajax調用allItems陣確實有它的一個項目,但認爲從來沒有更新之後。
我的Ajax調用頭是
請求URL:本地主機:41796/locations.aspx /的getData
請求方法:POST
狀態代碼:200 OK
請求Headersview來源
接受:application/json,text/javascript,/; q = 0.01
Content-Type:application/json;字符集= UTF-8
響應Headersview源 緩存控制:私人,最大年齡= 0
連接:關閉
的Content-Length:270
內容類型:應用/ JSON;字符集= UTF-8
和我的$ HTTP頭
請求URL:本地主機:41796/locations.aspx /的getData
請求方法:GET
狀態代碼:200 OK
請求Headersview解析
GET /locations.aspx/getData HTTP/1.1
主機:本地主機:41796
連接:保持活躍
響應Headersview解析
HTTP/1.1 200 OK
服務器:ASP.NET開發服務器/ 10.0.0。0
Cache-Control:private
Content-Type:text/html;字符集= UTF-8
的Content-Length:7177
連接:關閉
我猜'$ http.jsonp'默認爲'type:「GET」'而且你沒有通過GET公開getData方法?當你在瀏覽器中點擊'locations.aspx/getData'時會發生什麼,你會得到沒有被調用的方法的HTML嗎? – Langdon 2013-04-03 20:01:10
我編輯了我的問題,我正在查看標題,我發現他們不一樣,這可能會給我的替代響應?我也嘗試過在瀏覽器中使用getData,它沒有調用方法就調出了html。 – willJk 2013-04-03 20:34:03