saya punya kode ini:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
Di lingkungan lokal saya, berfungsi dengan baik, tetapi di server, kembalikan kesalahan ini:
TypeError: $ http.get (...). Sukses bukan sebuah fungsi
Ada ide? Terima kasih
javascript
angularjs
ajax
function
Alejo Ribes
sumber
sumber
then()
tidaksuccess()
.success
sintaks benar hingga V1.4.3 sudut. Lihat dokumen lama di sini: code.angularjs.org/1.4.3/docs/api/ng/service/$httpJawaban:
The
.success
sintaks benar hingga V1.4.3 sudut.Untuk versi hingga Angular v.1.6, Anda harus menggunakan
then
metode. Thethen()
Metode membutuhkan dua argumen: asuccess
danerror
callback yang akan dipanggil dengan objek respon.Menggunakan
then()
metode ini, lampirkancallback
fungsi ke yang dikembalikanpromise
.Sesuatu seperti ini:
Lihat referensi di sini.
Shortcut
metode juga tersedia.Data yang Anda dapatkan dari respons diharapkan dalam
JSON
format. JSON adalah cara yang bagus untuk mengirimkan data , dan mudah digunakan dalam AngularJSPerbedaan utama antara 2 adalah bahwa
.then()
panggilan mengembalikan apromise
(diselesaikan dengan nilai yang dikembalikan dari acallback
) sedangkan.success()
cara pendaftaran yang lebih tradisionalcallbacks
dan tidak mengembalikan apromise
.sumber
.success
dan.then
mengambil param yang berbeda, memperhitungkan ituIni mungkin berlebihan tetapi jawaban yang paling banyak dipilih di atas mengatakan
.then(function (success)
dan itu tidak berhasil untuk saya pada versi Angular1.5.8
. Alih-alih gunakanresponse
lalu di dalam blok,response.data
dapatkan saya data json saya yang saya cari.sumber
success.data
? nama parameter tidak terlalu penting dalam kasus ini.$http.get('data/data.json').success(function(data) { data = data;}
dengan jawaban saya, pengembang sekarang tahu bahwa iadata.data
tidak bisa mendapatkan data dengan sendirinya. karenanya jawaban saya penting untuk pesan kesalahan ini.success.data
atauresponse.data
atau apa pun. Anda bahkan dapat menggunakandonaldTrump.data
itu juga akan berhasil. Meskipun Anda harus menggunakan nama variabel yang masuk akal, tidak yakin yang ini akan masuk akal.data
yang menyimpan data yang datang sebagai respons dari server Anda. Anda perlu mengakses larik data itu, menggunakan<yourSuccessObjectName>.data
Jika Anda mencoba menggunakan AngularJs 1.6.6 pada 21/10/2017, parameter berikut berfungsi sebagai .success dan telah habis. Metode .then () mengambil dua argumen: respons dan callback kesalahan yang akan dipanggil dengan objek respons.
Snipit di atas berfungsi untuk halaman login.
sumber