AngularJS si odihna Serviciul

voturi
3

Am început recent experimente cu AngularJS . Sunt construirea o aplicație simplă , care se actualizează html5 o MySQL bază de date.

[Index.html]

<!DOCTYPE html>
<html ng-app=MyProject>
<head>
    <title>My Project</title>
    <link rel=stylesheet href=css/main.css type=text/css>
    <script src=lib/angular-1.0.1.js></script>
    <script src=lib/angular-resource-1.0.1.js></script>
    <script src=js/controllers.js></script>
    <script src=js/services.js></script>
</head>
<body>
    <div id=main-content ng-view>
</body>
</html>

Am folosit cadrul Slim pentru a crea o interfață Rest. Baza mea de date are în prezent un location_types tabel numit cu două coloane id și din titlu. Am testat serviciul REST în browser-ul astfel încât sub api / locationtypes am obține următoarele JSON:

[{id:1,title:Airport},{id:2,title:Bus Station}]

Am crea serviciul în AngularJS folosind următorul cod:

[Services.js]

angular.module('myDB', ['ngResource']).
factory('LocationTypes', function($resource) {
    var LocationTypes = $resource('http://localhost/project/api/locationtypes', {}, { query: {method: 'GET', isArray: true}});
    return LocationTypes; 
});

Eu folosesc, de asemenea, următorul cod pentru a crea modulul aplicației:

[controllers.js]

angular.module('MyProject', ['myDB']).
config(function($routeProvider) {
    $routeProvider.
        when('/locationtypes', {controller: LocationTypesCtrl, templateUrl:'forms/locationtypes.html'}).
        otherwise({redirectTo:'/locationtypes'});
});


function LocationTypesCtrl($scope, LocationTypes)
{
    $scope.locationTypes = LocationTypes.query();
}

Problema este că nu primesc nici un rezultat după interogarea serviciului. locationTypesMatrice este de lungime zero , atunci când am depana. Sunt folosind ultima AngularJS lansare [1.0.1]. Ce mi -e dor?

Întrebat 28/06/2012 la 06:47
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
1

Este într-adevăr adresa URL 'http: // localhost / proiect / api / locationtypes' sau este un server extern? Dacă extern său, atunci aveți o (origine transversală) CORS problemă. Doar dacă îmi lipsește ceva se pare corect pentru mine.

Publicat 28/06/2012 la 20:48
sursa de către utilizator

voturi
1

Probabil o problemă CORS precum Dan a spus. Puteți ocoli acest lucru prin adăugarea următoarelor configurației, în modul.

.config(function($httpProvider){
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
})

Ștergerea antetele stabilite de angulară să rezolve problema CORS. Ar trebui să adăugați, de asemenea, un fișier .htaccess în dosarul api. Și adăugați acest lucru:

Header set Access-Control-Allow-Origin "*"
Publicat 13/08/2013 la 06:46
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more