2017-06-01 71 views
0

在這裏,我嘗試做一個簡單的發佈請求到我的控制器與URL作爲職位正文。 ajax調用完成後,我沒有收到控制器的響應。爲什麼?ajax調用後沒有返回響應實體,爲什麼?

這是我的控制器:

@RestController 
public class Controller { 
    @RequestMapping(value = "/authenticate", method = RequestMethod.POST, consumes = {"application/json"}) 
    public ResponseEntity<String> authenticate(@RequestBody String url) { 
     System.out.println(url); 

     return new ResponseEntity<>("TOKEN", HttpStatus.OK); 
    } 
} 

而Ajax調用:

var url = 'https://slack.com/api/oauth.access' + 
     '&client_id=' + client_id + '&client_secret=' + client_secret + '&code=' + code + '&redirect_uri=' + redirect_uri; 

    $.ajax({ 
     url: "/authenticate", 
     type: 'POST', 
     data: JSON.stringify(url), 
     contentType: 'application/json', 
     dataType: 'json' 
    }).done(function (data) { 
     console.log(data); 
    }) 

無打印在控制檯中。你能告訴我什麼是問題嗎?

+0

您的contentType: '應用/ JSON的',將是一個JSON它可能會導致問題 –

回答

0

@Gustavo

嗨,你有沒有試過JSON視圖? JSON始終返回一個鍵值;我們可以通過它訪問元素。 大多數情況下,鍵值是帶有'結果'以及Funcation名稱的後綴。

如果您尋找在JSON.stringfy(「」)用於只檢查是否接收到的數據是正確的,帽子後,你需要PAESEĴ

變種文字= JSON.parse(response.data。 GetAllDataResult);

0

事實證明,我是從控制器返回字符串不能被解析成JSON,因爲它沒有一個有效的格式

我改了行

return new ResponseEntity<>("TOKEN", HttpStatus.OK); 

return new ResponseEntity<>("\"TOKEN\"", HttpStatus.OK); 

它工作正常。

Return JSON for ResponseEntity<String>