鍍金池/ 問答/Linux  網(wǎng)絡(luò)安全/ 關(guān)于jquery Get請求不支持application/json調(diào)用

關(guān)于jquery Get請求不支持application/json調(diào)用

我開發(fā)了一個(gè)輸入城市列表查詢經(jīng)緯度的接口 如下所示

curl -X GET -H 'Content-Type: application/json;charset=UTF-8' 'http://localhost:8080/getGeocoords' -d '["北京市","上海市","杭州市","廣州市","深圳市"]'

我在命令行中明明可以調(diào)用 但是前端同事卻說調(diào)用不了 非得改成POST才行

后面我用Restlet Client插件試了一下 好像確實(shí)不支持 提示如下

clipboard.png

奇怪 為什么curl就可以呢? curl和XHR有什么區(qū)別嗎?

補(bǔ)充
對應(yīng)的后端代碼是

    @GetMapping("/getGeocoords")
    public Result getGeocoordsByCityList(@RequestBody List<String> cityList)
回答
編輯回答
愚念

-d, --data DATA HTTP POST data (H)

按http協(xié)議套路來

2018年3月26日 22:45
編輯回答
野橘

你代碼有問題。

2017年6月6日 02:56
編輯回答
離人歸

兄弟,雖說其實(shí)http請求的payloads是可以亂寫的,但這并不符合規(guī)矩。
你用curl發(fā)的get請求,參數(shù)卻全在-d中,這個(gè)-d是HTTP POST data,是post才要用的。
如果你用tcpdump抓個(gè)包,你會(huì)發(fā)現(xiàn)curl完全不限制你請求咋發(fā),真的可以隨便搞。但是如果你想搞rest,你就要遵守rest的要求,get參數(shù)不能放在payloads里,要放在url中。

2018年5月23日 07:24
編輯回答
妖妖

基本上, curl 比較智能。 監(jiān)測到 -d 后, 自動(dòng)轉(zhuǎn)換成了 POST 。。。。

2018年3月25日 23:19