2017-01-20 88 views
0

我试图从我的JS调用我的Java后端无法从克莱因将数据发送到服务器

角JS(http://localhost:8082/dev/index.html#/):

self.submit = function() { 
    console.log("in voice prompt component - submit"); 
    console.log(self.voice); 
    $http.put('localhost:8082/api/Voices/updateVoice', self.voice).then(
    function successCallback(response) { 
     self.voices = response.data; 
    }, 
    function errorCallback(response) { 
     // called asynchronously if an error occurs 
     // or server returns response with an error status. 
     console.log(response); 
    }); 
} 

的Java(应该是localhost:8082/api/Voices/updateVoice

@Path("/Voices") 
public class VoicesOperation { 

... 

    @Path("/updateVoice") 
    @PUT 
    @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") 
    public void updateVoice(VoiceBl voice) throws Exception { 

     fillVoicesSnapshot(); 
回应

我得到这个js例外:

TypeError: 'caller' and 'arguments' are restricted function properties and cannot be accessed in this context. 
    at Function.remoteFunction (<anonymous>:3:14) 
    at errorCallback (http://localhost:3002/public/js/components/voice-form-component.js:54:29) 
    at http://localhost:3002/bower_components/angular/angular.min.js:133:460 
    at m.$eval (http://localhost:3002/bower_components/angular/angular.min.js:147:313) 
    at m.$digest (http://localhost:3002/bower_components/angular/angular.min.js:144:421) 
    at m.$apply (http://localhost:3002/bower_components/angular/angular.min.js:148:78) 
    at HTMLButtonElement.<anonymous> (http://localhost:3002/bower_components/angular/angular.min.js:282:247) 
    at cg (http://localhost:3002/bower_components/angular/angular.min.js:38:299) 
    at HTMLButtonElement.d (http://localhost:3002/bower_components/angular/angular.min.js:38:246) 

回答

0

问题在于你的资源文件,你没有发送任何你没有消费的东西。如果你正在发送一个响应,那么你的返回类型应该是响应,并且你也需要消耗。

@Path("/Voices") 
public class VoicesOperation { 

... 

    @Path("/updateVoice") 
    @PUT 
    @Consumes(MediaType.APPLICATION_JSON) 
    @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") 
    public Response updateVoice(VoiceBl voice) throws Exception { 
     Voice voice = fillVoicesSnapshot(); 
     return Response.status(Status.CREATED) 
         .entity(voice) 
         .build(); 
    } 
} 

或者,如果您要发送语音类型,则返回类型应为语音。

@Path("/Voices") 
public class VoicesOperation { 

... 

    @Path("/updateVoice") 
    @PUT 
    @Consumes(MediaType.APPLICATION_JSON) 
    @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") 
    public Voice updateVoice(VoiceBl voice) throws Exception { 

     return fillVoicesSnapshot(); 
    } 
} 
相关问题