2014-10-30 20 views
29

Jestem nowy dla angularjs i szukałem w Internecie przez cały dzień tylko po to, aby znaleźć rozwiązanie w pobieraniu danych z lokalnego pliku json bez konieczności korzystania z localhost dla mojej aplikacji webowej. Niestety, nie znalazłem żadnego. Próbowałem użyć $ http.get, ale dostaję błąd Cross Origin *.Angularjs dostęp lokalnych plików json

Czy istnieje inny sposób, w jaki mogę uzyskać dane z mojego lokalnego pliku json bez konieczności lokalnego hostowania mojej aplikacji internetowej?

Czy angularjs ma jakąkolwiek inną funkcję uzyskiwania danych z lokalnych plików json, bez konieczności używania swojego pliku $ http.get?

+1

Nie rozumiem znaczenia sugerowanych linków. Już to wiem. Pytam tylko, czy Angularjs ma możliwość czytania lokalnych plików JSON, takich jak funkcja wanillajs 'jsonp.fetch (url). – Jibo

+0

Wszystkie twoje (@ Re-l, @ivarni, @Second Rikudo) sugerowane duplikaty nie wydają się być istotne dla pytania. Moje rozumienie jest, pytanie dotyczy podejścia wykorzystującego 'Angular.JS' ** Framework **. Angular.JS jest nadal JavaScript, ale ma własne podejście, które może się różnić od ** Natywnego JavaScript **. –

+0

@JennyCasarino Angular IS Javascript. Jest ograniczony tymi samymi zasadami, które dotyczą Javascript. Jeśli nie możesz zrobić czegoś w JavaScript, nie możesz tego zrobić w Angular. ** nie ** różni się od natywnej wersji Javascript, jeśli chodzi o piaskownice. – ivarni

Odpowiedz

5

Musisz wdrożyć swoją aplikację na jakimś serwerze http, najprostszym sposobem jest użycie węzła, oto przykład https://www.npmjs.org/package/http-server lub możesz zmienić ustawienia bezpieczeństwa przeglądarki.

+0

, ale to nadal oznacza, że ​​będę ją hostować lokalnie . aplikacja webapp im obecnie pracuje wymaga, aby json był lokalny, więc gdy nie ma połączenia z Internetem, nadal będę mógł coś zobaczyć. strona natywna zapisuje ten plik json. Jest to aplikacja typu hybrydowego. – Jibo

+0

Czy to rozszerzenie chrome? Problem polega na tym, że nie można załadować pliku z lokalnego systemu, który byłby dużym problemem bezpieczeństwa, jeśli załadowałbyś plik z interakcji użytkownika, możesz wprowadzić dane wejściowe, aby użytkownik mógł załadować plik json lub zapisać wartości w localstorage. – Grissom

+0

tak w przeciwieństwie do zwykłego starego js. angularjs nie ma czegoś takiego jak jsonp.fetch (url), gdzie mogę pobrać dane z lokalnych plików json? – Jibo

30

Można odwołać się do pliku json nazywając je metodą GET, tak:

$http.get('phones/phones.json').success(function(data) { 
    $scope.phones = data; 
}); 

Sprawdź official AngularJS tutorial, aby zobaczyć, co robisz źle.

Aktualizacja:

Dla kątowym 1.6 +success metody nie jest już ważne, zamiast używać then:

$http.get('phones/phones.json').then(function(data) { 
    $scope.phones = data; 
}); 

Patrz źródła here.

+4

Próbowałem już tego. Nadal daje mi krzyżowe pochodzenie * błąd – Jibo

+0

Po napisaniu kodu lub uzupełnieniu skrzypiec, jeśli masz wątpliwości co do kodu. Być może jesteś miss - używając '$ http' na swoim kontrolerze. To powszechny błąd. – Kutyel

+0

var app = angular.module ("MojaAplikacja", []); app.controller ("MyFunction", ['$ scope', '$ http', funkcja ($ scope, $ http) { $ http.get ('json/producttable.json'). Success (function (dane) { $ scope.mydata = dane; }); }] ); – Jibo

Powiązane problemy