ajax调用后不返回响应实体,为什么?

时间:2017-06-01 09:13:02

标签: java jquery ajax spring rest

在这里,我尝试向我的控制器发送一个简单的帖子请求,其中一个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);
    })

控制台中没有打印任何内容。你能告诉我问题是什么吗?

2 个答案:

答案 0 :(得分:1)

事实证明,我从控制器返回的字符串无法解析为json,因为它没有有效格式

我改变了行

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

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

它运作正常。

Return JSON for ResponseEntity<String>

答案 1 :(得分:0)

@Gustavo

嗨,你试过JSON视图吗? JSON始终返回键值;我们可以通过它访问元素。 大部分关键值是后缀&#39;结果&#39;以及Funcation名称。

如果您正在使用JSON.stringfy(&#34; ..&#34;)来检查收到的数据是否正确,那么您需要先了解J

var text = JSON.parse(response.data.GetAllDataResult);