私はこのコードを持っています:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
私のローカル環境では、うまくいきますが、サーバーでは、このエラーを返します:
何か案は?ありがとう
.success
構文は、Angular v1.4.3までは正しいものでした。
Angular v.1.6までのバージョンでは、then
メソッドを使う必要があります。 then()
メソッドは2つの引数を取ります。応答オブジェクトとともに呼び出されるsuccess
およびerror
コールバックです。
then()
メソッドを使用して、返されたcallback
にpromise
関数を添付します。
このようなもの:
app.controller('MainCtrl', function ($scope, $http){
$http({
method: 'GET',
url: 'api/url-api'
}).then(function (response){
},function (error){
});
}
参照 こちらをご覧ください。
Shortcut
メソッドも利用可能です。
$http.get('api/url-api').then(successCallback, errorCallback);
function successCallback(response){
//success code
}
function errorCallback(error){
//error code
}
応答から得たデータはJSON
フォーマットであることが期待されています。 _ json _ は data を転送するのに最適な方法であり、 AngularJS の中で使用するのは簡単です。
2との大きな違いは、.then()
呼び出しはpromise
(callback
から返される値で解決される)を返すのに対し、.success()
はcallbacks
を登録するためのより伝統的な方法でpromise
を返さないことです。
これは冗長かもしれませんが、上記で最も投票された回答は.then(function (success)
と言っていて、Angular version 1.5.8
の時点ではうまくいきませんでした。代わりにresponse
を使用し、次にブロックresponse.data
を使用して、探していたjsonデータを取得できます。
$http({
method: 'get',
url: 'data/data.json'
}).then(function (response) {
console.log(response, 'res');
data = response.data;
},function (error){
console.log(error, 'can not get data.');
});
2017/10/21現在AngularJs 1.6.6を使用しようとしている場合、次のパラメータは.successとして機能し、使い果たされています。 .then()メソッドは2つの引数を取ります:レスポンスとレスポンスオブジェクトで呼び出されるエラーコールバックです。
$scope.login = function () {
$scope.btntext = "Please wait...!";
$http({
method: "POST",
url: '/Home/userlogin', // link UserLogin with HomeController
data: $scope.user
}).then(function (response) {
console.log("Result value is : " + parseInt(response));
data = response.data;
$scope.btntext = 'Login';
if (data == 1) {
window.location.href = '/Home/dashboard';
}
else {
alert(data);
}
}, function (error) {
alert("Failed Login");
});
上記のスニペットはログインページに機能します。