最近我使用express框架來(lái)構(gòu)建一個(gè)Web應(yīng)用程序時(shí),遇到了一個(gè)很奇怪的問(wèn)題,我向客戶端發(fā)送了JSON響應(yīng),但是不論我如何嘗試,JSON數(shù)據(jù)都沒(méi)有顯示出來(lái)。在經(jīng)過(guò)一番掙扎和嘗試后,我最終找到了問(wèn)題所在。
當(dāng)我使用以下代碼來(lái)發(fā)送JSON響應(yīng)時(shí),一切看起來(lái)都很正常:
res.contentType('application/json'); res.send({data: 'hello world'});
然而,當(dāng)我在瀏覽器中查看響應(yīng)時(shí),只看到了一個(gè)空白頁(yè)面,JSON數(shù)據(jù)沒(méi)有顯示出來(lái)。我試著在瀏覽器中查看響應(yīng)頭,但是也沒(méi)有任何幫助。
最終,我發(fā)現(xiàn)解決方法就是使用JSON字符串而不是對(duì)象。我修改了代碼如下:
res.contentType('application/json'); res.send(JSON.stringify({data: 'hello world'}));
現(xiàn)在,當(dāng)我查看響應(yīng)時(shí),JSON數(shù)據(jù)已經(jīng)顯示出來(lái)了。這是一個(gè)讓我感到意外的解決方法,但是它確實(shí)有效。因此,如果您遇到相同的問(wèn)題,請(qǐng)確保使用JSON.stringify()方法。