簡體   English   中英

發送參數表示為 object (axios,fetch) 的 GET 請求?

[英]Sending GET request with parameters represented as object (axios,fetch)?

我有這樣的參數。 其中一些表示為 object(例如,“變量”為 object),那么我如何發送帶有這些參數的 GET 請求?

 {"operationName":"getPostList","variables":{"input":{"type":"post","locale":"en","projectId":"1"}},"query":"query getPostList($input: PostSearchType) {\n posts(input: $input, paging: {limit: 12}) {\n items {\n id\n type\n locale\n shortDescription\n fullUrl\n thumbnail\n tags\n title\n publishedAt\n __typename\n }\n __typename\n }\n}\n"}

起初我認為這很簡單,只需將它們添加為正文即可。 但事實證明你不能將正文添加到 GET 請求。 axios github 頁面說:

data是要作為請求主體發送的數據 僅適用於請求方法 'PUT'、'POST'、'DELETE 和 'PATCH'

您只能添加參數,但是:

params是與請求一起發送的 URL 參數必須是普通的 object 或 URLSearchParams object

但是有一些東西可以拯救你:paramsSerializer

paramsSerializer是一個可選的 function 負責序列化params (例如https://www.npmjs.com/package/qs , http://api.jquery.com/jquery.param/

例如

paramsSerializer: function (params) {
    return Qs.stringify(params, {arrayFormat: 'brackets'})
}

從現在開始,你只需要弄清楚如何序列化你的參數——如果不知道接收系統期望它們被格式化,我將無能為力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM