2014-11-21 136 views
0

我正在尝试使用jQuery更新字符串数组。该服务器是一个启动Spring MVC服务器。当我进行POST时,来自服务器的响应是HTTP 403 Forbidden从jQuery发布到MVC Spring服务器响应HTTP 403禁止

弹簧控制器

@RequestMapping(value="getlistmap", method = RequestMethod.POST) 
    public @ResponseBody String getListMapfromOneProject(HttpServletResponse response, Principal p,@RequestBody String respostas) throws IOException { 
    System.out.println("A AJAX call has been detected!"); 
    return "ok!"; 
} 

POST代码:

var respostas=["hello","hi","bye"]; 
    var urlprova = 'getlistmap'; 
    $.ajax({ 
    type: 'POST', 
    url: urlprova, 
    dataType: 'json', 
    data: JSON.stringify(respostas), 
    success: function (data) { 
     alert("updated successfully"); 
     }, 
    error: function (xhr, ajaxOptions, error) { 
     alert(err.status); 
     alert('Cannot update, ' + err.responseText); 
    } 

});

控制台从服务器(URL和方法控制器似乎是正确的映射):

二○一四年十一月二十○日18:44:53.427 INFO 6724 --- [主要] oswshandler .SimpleUrlHandlerMapping:映射到[class org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler]处理程序的URL路径[/] 2014-11-20 18:44:53.466信息6724 --- [main] swsmmaRequestMappingHandlerMapping:映射的“ {[/ login],methods = [GET],params = [],headers = [],consumes = [],生成= [],custom = []}“public org.springframework.web.servlet.ModelAndView palmaslab .mapas.controller.myController.login()2014-11-20 18:44:53.466 INFO 6724 --- [main] swsmmaRequestMappingHandlerMapping:映射“{[/ getlistmap],methods = [POST],params = [],headers = [],consumes = [] ,生成= [],自定义= []}“到公共java.lang.String palmaslab.mapas.controller.myController.getListMapfromOneProject(javax.servlet.http.HttpServletResponse,java.security.Principal,java.lang.String)throws java.io.IOException 2014-11-20 18:44:53.467 INFO 6724 --- [main] swsmmaRequestMappingHandlerMapping:映射“{[/ addProjectPostoSaude],methods = [GET],params = [],headers = [] ,消耗= [],产生= [],自定义= []}”到公共org.springframework.web.servlet.ModelAndView palmaslab.mapas.controller.myController.addProject()

+0

您是否在使用Spring Security?如果是这样,请参阅我的[答案](http://stackoverflow.com/a/34319194/583237)。 – 2015-12-16 18:15:41

回答

0

看起来像你的Ajax后包含sessionId或用户凭证。 - 当你使用Spring Security时,你需要发送每一个请求。

+0

对不起,我现在正在学习jquery,请你能解释我如何发送用户凭证?谢谢 – 2014-11-21 13:29:20

+0

http://stackoverflow.com/questions/5433351/jsessionid-httponly-cookie-not-sent-to-web-service-from-javascript – Ralph 2014-11-21 14:50:48

+0

我怎么能从之前的getJSON中捕获Cookie? – 2014-11-21 15:16:40

0

长相一般合法的,尝试之后,他们中的一个可能解决您的问题:

  • 添加斜线对您的请求映射值: @RequestMapping(value="/getlistmap"...
  • 添加:contentType: 'application/json',你的AJAX调用
  • 在您的请求映射中描述标题为:headers = {"Content-type=application/json"}
相关问题