在 Spring MVC 中使用 JSONP 呼叫其他伺服器時,若發現無法接收到回傳值,通常是因為 Controller 沒有正確將回應寫回客戶端。雖然瀏覽器開發人員工具能看到請求有結果,但 JavaScript 的 success 回呼卻沒有觸發。
正確做法是在 Controller 中使用 HttpServletResponse,設定內容類型為 text/html,並透過 response.getWriter() 將 JSONP 回調函數寫回去。前端定義好回調函數名稱,伺服器端以該函數包裹資料回傳,瀏覽器就能正常執行回呼。