2017-06-16 55 views
1

我正在使用react-redux combo和axios以及GET請求。 但是,我需要做一個添加'數據'屬性的請求。JS:添加「data」參數的GET請求,如cURL -d'{key:value,key2:value}'

就像cURL使用-d標誌獲取請求一樣。

例如。 cURL <...> -d '{"key1": "value", "key2": "value"}'

Axios文檔,但是說,只有POSTPUT等可以有一個'data'選項。 GET不支持這一點。

我應該使用JS lib/tool來在react-redux中做到這一點?

有什麼建議嗎?

+0

axios允許你這樣做。只要傳入數據參數,它就可以工作,當你發佈信息時它是如何工作的。 – VivekN

+0

@VivekN你有沒有使用'數據'與GET?因爲文檔說它只允許'PUT','POST'和'PATCH'中的'data'部分... – Meticulous

+0

您可以將所有數據對象發送到axios的params鍵中。 例如:-axios.get( 'http://autocomplete.wunderground.com/aq',{ \t \t \t \t PARAMS:{ \t \t \t \t \t查詢: '德黑蘭', \t \t \t \t \t名稱: '維韋克納亞爾' \t \t \t \t} \t \t \t}) \t \t(響應)=> { } \t \t \t \t console.log(response); \t \t \t}) \t \t \t .catch((誤差)=> { \t \t \t \t控制檯。日誌(誤差); \t \t \t}) \t} – VivekN

回答

0

您不能以同樣的方式將數據附加到您可以通過POST和PUT執行的GET請求。這是底層http規範的一部分。

您需要包含您的數據包作爲查詢參數。有幾個方法可以做到這一點,如下列:

const package = JSON.stringify({"key1": "value", "key2": "value"}) 
axios.get('/user?ID=12345&data=' + escape(package)) 

然後在後臺,你會反轉義和JSON.parse的data

理想情況下,你不應該這樣做。 POST和PUT專門爲此角色設計,並允許您發送大量數據。這些請求類型也分別用於創建或更新遠程資源。 GET意味着檢索URI中定義的資源,而不是更改/創建/更新它。

+0

我剛纔讀到了,正如我前面指出的那樣,它允許但不允許GET請求。這是問題.. – Meticulous

+0

對不起,我誤解了你的問題。 – Geuis

+0

已更新的答案。 – Geuis