2014-11-05 19 views
8

Używam AngularJS do interakcji z usługą RESTful, używając opcji Restangular, aby wyodrębnić różne narażone podmioty. Niektóre z tych elementów są obrazami lub plikami, więc muszę mieć możliwość użycia akcji Post of Restangular, aby wysyłać zarówno dane binarne, jak i pola tekstowe w ramach tego samego żądania.Pliki i dane POST z ograniczeniami czasowymi

W jaki sposób mogę użyć opcji Przekroczono, aby przesłać dane z przesłanymi obrazami lub plikami do odprężającego serwera w jednym żądaniu POST?

+0

Aby wysłać plik za pośrednictwem ajax żądanie POST trzeba zrobić wieloczęściowy forma przedstawienia. Ta odpowiedź może pomóc w rozpoczęciu pracy: http://stackoverflow.com/questions/6974684/how-to-send-formdata-objects-with-ajax-requests-in-jquery Zgodnie z tym, zasadniczo przesyłasz formularz , najtrudniejszą częścią będzie zapewnienie, że $ http nie ustawi niewłaściwego typu zawartości. Rzuć okiem na opcję Restangular withHttpConfig https://github.com/mgonto/restangular#using-local-http-configuration, lub może ustawiając nagłówek Content-Type bezpośrednio na customPost – guzart

Odpowiedz

2

Właśnie odpowiedziałem na bardzo podobne pytanie here, które wyjaśnia, jak korzystać z dyrektywy modelowania plików i tworzenia obiektu formData, który następnie jest wysyłany do api.

Użycie opcji Przekątna zamiast $ http, jedyna część, która jest inna, to oczywiście sposób, w jaki robi się wpis.

Oto jak po odbywa się za pomocą restangular:

Restangular.one('api/url/to/endpoint') 
.withHttpConfig({transformRequest: angular.identity}) 
.customPOST(fd, '', undefined, {'Content-Type': undefined})