Ich versuche, ein Byte-Array eines Dateiinhalts von eckigen zum Rest API zu senden. Aber ich bekomme Http 403 verboten. Ich habe keine Sicherheit aktiviert. Ich bin mir nicht sicher, was ich falsch mache. Ich habe ein paar verschiedene MIME-Typen ausprobiert. Das Folgende ist der http-Post von angular js und die $ scope.encoded_file hat die Datei im Byte-Array.Spring Rest Controller mit Byte-Array-Datei
$http({
method:'POST',
url:'http://localhost:9200/docupload',
data:{'content':$scope.encoded_file,'name':'test','type':'pdf'},
headers:{'Content-Type':'application/octet-stream'}
}).success(function(){});
};
DocUploadService
@RestController
public class DocUploadService {
@RequestMapping(value="/docupload",method={RequestMethod.GET,RequestMethod.POST},consumes="application/octet-stream")
public String UploadDocuments(@RequestParam(value="content")byte[] content,@RequestParam(value="type") String type,@RequestParam(value="name") String name) throws IOException
{
System.out.println("****Inside DocUpload*****");}}
Die Anforderung an den Service natürlich doesnt zu erreichen, und ich weiß nicht, warum ich 403. Jede Idee bin immer?
Added @CrossOrigin in vor dem Verfahren Dienst aber noch kein Glück
Haben hinzugefügt die unter der CrossOrigin auf die Controller-Methode.
public class DocUploadService {
@CrossOrigin(origins = "http://localhost:9200")
@RequestMapping(value="/docupload",method={RequestMethod.GET,RequestMethod.POST,RequestMethod.OPTIONS,RequestMethod.PUT},consumes="application/octet-stream")
Auch globale CORS Registrierung hinzugefügt.
@EnableWebMvc
public class WebMVCconfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
// TODO Auto-generated method stub
registry.addMapping("/docupload")
.allowedOrigins("http://localhost:9200")
.allowedMethods("POST", "GET","OPTION","PUT");
super.addCorsMappings(registry);
}
Das könnte ein CORS-Problem sein. Haben Sie andere Controller, die tatsächlich funktionieren? –
Versuchen Sie, die Anfrage zu prüfen (mit Chrome Firebug zum Beispiel), um zu sehen, ob es einen CORS Fehler gibt –
Es sollte CORS sein. Aber ich weiß nicht, wie ich es lösen soll. Bitte überprüfen Sie den bearbeiteten Bereich des Posts. Ich habe Anforderungsheader hinzugefügt. – GAK