2013-10-14 11 views
6

ben javascript, angularjs ve JQuery de acemi değilim, ama sadece ben böyle bir web sunucusu bir JSON almak için JQuery kullanmak bir angularjs uygulamayı programlama başladı:AngularJS'de getJSON'a eşit bir yöntem var mı. [Çaylak uyarısı]

var obj = $.getJSON("http://something.com/lol?query="+ $scope.searchString, function() { 
      $scope.items = obj.responseJSON.entries;      
     } 

mı orada metodu angularJS'de $ .getJSON'a eşit mi? Böylece JQuery kitaplığını almak zorunda kalmam.

Şimdiden teşekkürler, yeni kullanıcı.

function InstantSearchController($scope, $http){ 
$scope.search = function() { 
    $http.jsonp("http://something.com/lol?query="+ $scope.searchString + "?json_callback=JSON_CALLBACK").success(
         function(data, status) { 
          console.log(data); 
         } 
       ); 
} 

ama hata msg alıyorum:

Bu benim çözüm şimdiye kadar neden bu

Uncaught SyntaxError: Unexpected token :

mı? Neyi yanlış yapıyorum? }

cevap

8

soruma cevap ı insanlardan got yardım Sonunda bunu düzeltmek başardı ve ben böyle yaptım Çünkü: Bu yardımcı olur

app.controller('myController', function($scope, $http){ 
    $scope.items = []; 
    $scope.search = function() {   
      $http({method: 'JSONP', url: "http://something.com/lol?callback=JSON_CALLBACK&query="+ $scope.searchString}). 
       success(function(data, status) { 
       $scope.items = data.entries; 
       }). 
       error(function(data, status) { 
       console.log(data || "Request failed"); 
      });  
    }; 

Hope gelecekte aynı sorunu olan herkes: D

2

Angular'de AJAX istekleri göndermek için $http kullanabilirsiniz.

1
function ListProdcutsCtrl($scope, $http) { 
    var request = {'searchString' : 'apple'}; 
    $http.get('/api/products', request).success(function(response) { 
     $scope.products_table_data = response.products; 
    }); 
+1

var request = {'searchString' = 'apple'}; ?var istek olmalı = {'searchString': 'apple'}; – Whisher

+0

Evet, pardon. Aslında bu kodu çalıştırmamıştım ... –

+0

Bunu anlamıyorum, çünkü farklı kurulum aaaand ve tam bir noooob olduğum için ... Bana aynı isimlerde bir çözüm vermek mümkün mü? örnek? xD – Erex

1

ile JSONP isteklerini kullanabilir, sen more here bulabilirsiniz. Örneğin :

$http({method: 'JSONP', url: 'http://domain.com/page?json_callback=JSON_CALLBACK'}).success(
    function(data, status) { 
     // your stuff. 
    } 
); 

Ya da kısa:

$http.jsonp('http://domain.com/page?json_callback=JSON_CALLBACK').success(
    function(data, status) { 
     // your stuff. 
    } 
); 

JSONP (JSON Dolgu) Başka bir etki alanından JSON veri almak için izin verir. Ancak, elde veri düz JSON olmamalı, bunun yerine bir JavaScript böyle dosyası: İhtiyacınız JSON veri aynı etki geliyorsa

JSON_CALLBACK([ 
    {"name": "apple", "color": "red"}, 
    {"name": "banana", "color": "yellow"} 
]); 

, sen JSONP gerekmez.

+0

Teşekkürler! Ama bu JSONP değil JSON? Fark ne? Bunu yaptığımda "Uncaught SyntaxError: Beklenmedik belirteci:" hatası alıyorum, muhtemelen bu neden? – Erex

+0

JSONP, çeşitli tarayıcıların genellikle tarayıcılar tarafından yasaklanan başka bir alandan JSON verilerini talep etmesine izin verir. Örnek URL'mde açık olmasa da, URL'nize "callback = JSON_CALLBACK" parametresini eklemeniz gerekir (AngularJS belgesinde daha fazla bilgi). –

+0

Kodumu buraya yapıştırmayı denedim, ancak işe almadım, bu yüzden sorumu genişlettim. Herhangi bir fikrin neyi yanlış? şimdi bir huuuuge noob gibi hissediyorum, bizim için de oldu! – Erex

0

JSONP, AJAX URL çağrılarının etki alanları arası kısıtlamalarının üstesinden gelmek için kullanılır. Angularjs (v1.5) ile

, alanlar arası istekleri göndermek için bu kodu kullanabilirsiniz:

$http.jsonp(baseurl+'?token=assume_jwt_token'+encoding+type + "&callback=JSON_CALLBACK") 

angularjs JSONP istek için sözdizimi geçerli: url "dizesi

$http.jsonp(url, [config]); 

olduğu "İsteğin hedefini belirten Göreceli veya mutlak URL'yi temsil eden tür. Geri aranmanın adı JSON_CALLBACK dizesi olmalı ve [config] İsteğe bağlı yapılandırma nesnesidir.

İlgili konular