我正在嘗試在 Ajax get-request 中將主題 id 串列作為查詢引數傳遞,以便它只回傳與我傳入的主題 id 相關的資料。API 設定為接收subjectId作為單個數字的引數,或以逗號分隔的數字字串。我已經確保我發送的內容正是"13,14,15"——但是當我發出請求時,get URL 對字串進行編碼,使其看起來像這樣:13,14,15,.
我要生成的 URL是(我只是使用占位符來表示域名和會話令牌) https://get-url.com/get-filter-counts?sessionToken=abcdefg&subjectId=13,14,15。當我在瀏覽器中測驗它時,它可以作業。
我實際生成的 URL 是https://get-url.com/get-filter-counts?sessionToken=abcdefg&subjectId=13,14,15,
我試過研究這個問題,但我什至不確定那里發生了什么。我查看了大量在 Ajax 請求中將字串作為查詢引數傳遞的示例,據我所知,我做得正確。我將一個字串硬編碼到下面的引數中只是為了演示:
$.ajax({
type: "GET",
url: getURL,
dataType: "JSON",
data: {
sessionToken: sessionToken,
subjectId: "13,14,15"
},
//process the returned result of the Ajax call
success: (ajaxResult) => {
console.log("subject id list:", subjectId);
console.log("Ajax result:", ajaxResult);
},
在成功方法中,控制臺回傳正確的 subjectId 串列以及與這些主題 ID 相關的資料。但由于這個 URL 問題,我無法在瀏覽器中獲得結果。
如何從 url 中的字串中洗掉編碼(如果發生這種情況?)?謝謝。
uj5u.com熱心網友回復:
問題在于在數字之間使用逗號。您從前端發送的字串正在被編碼,因此您看到的 URL。如果您嘗試encodeURIComponent(13,14,15),您會看到相同的回應。該解決方案將使用逗號以外的其他內容并在后端處理它或簡單地發送一個陣列。
uj5u.com熱心網友回復:
好吧,我發送的數字字串末尾有一個逗號(我認為這不是問題),結果證明這就是服務器沒有正確處理編碼 URL 的原因。只是分享以防萬一這對查看此問題的其他人有用。
@Quentin 的評論基本上是正確的,除了這個問題實際上是前端錯字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/410727.html
標籤:
