2014-11-21 183 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"}
相關問題