POST请求响应以奇怪的格式发送

时间:2019-03-08 17:45:50

标签: spring spring-boot http http-headers

我打算以以下格式发送服务器响应 Api Doc

我做了以下

            headersR.add("response_code", "OK");
            headersR.add("cmd_code", "SET_FK_NAME");
            headersR.add("trans_id", Long.toString(System.currentTimeMillis()/1000000));

            JSONPObject map1 = new JSONPObject("fk_name", "jj");

            return new ResponseEntity<>(map1, headersR, HttpStatus.OK);

我从另一端得到否定的响应,所以我检查了Wireshark(很难记录我的响应正文)。而我在Wireshark中得到了这个。

Wirehark Screenshot

响应主体绝对不是JSON。 我该如何解决?

1 个答案:

答案 0 :(得分:0)

响应正文fk_name("jj")不是JSON,而是JSONP -浏览器将使用函数名称fk_name并尝试以"jj"作为参数来执行。

根本原因是您正在使用JSONPObject,其构造函数接受2个参数:函数名和数据值。不是预期的JSON键和值。

要解决此问题并返回{"fk_name":"jj"},请删除JSONPObject内容并使用如下代码:

return new ResponseEntity<>("{\"fk_name\":\"jj\"}", headersR, HttpStatus.OK);