在这里,我尝试向我的控制器发送一个简单的帖子请求,其中一个url作为帖子正文。在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 :(得分:1)
事实证明,我从控制器返回的字符串无法解析为json,因为它没有有效格式
我改变了行
return new ResponseEntity<>("TOKEN", HttpStatus.OK);
到
return new ResponseEntity<>("\"TOKEN\"", HttpStatus.OK);
它运作正常。
答案 1 :(得分:0)
@Gustavo
嗨,你试过JSON视图吗? JSON始终返回键值;我们可以通过它访问元素。 大部分关键值是后缀&#39;结果&#39;以及Funcation名称。
如果您正在使用JSON.stringfy(&#34; ..&#34;)来检查收到的数据是否正确,那么您需要先了解J
var text = JSON.parse(response.data.GetAllDataResult);