摘要:實際上用封裝的方法,設(shè)置為或者,都可以自動轉(zhuǎn)換為格式,即使是,這時用函數(shù)打印返回值,是類型,這也是之前代碼沒有問題的原因?;蛘呤褂棉D(zhuǎn)換一下返回值,也是可以的。
導(dǎo)語
緣由是這樣的,給前端返回 json 數(shù)據(jù),反饋說數(shù)據(jù)不對(前端是在原代碼基礎(chǔ)上復(fù)制修改的,去掉 jsonp)??戳讼潞蠖舜a,發(fā)現(xiàn)是兩次返回 json 的代碼不同。但這不是問題的原因,然后再一看 JS 代碼,是前端沒有進行轉(zhuǎn)換。也正好借此機會,看了下平時沒有注意到的點。
分析日常寫代碼,返回一些簡短數(shù)據(jù)的時候,沒有使用框架封裝的方法,如下
exit(json_encode(["message" => "test"]));
這時候響應(yīng)頭的 Content-Type 是 text/html 。
如果用框架(ThinkPHP 3.0)的返回方式,
$this->ajaxReturn(["message" => "test"]);
這時候響應(yīng)頭的 Content-Type 是 text/html; charset=utf-8 。看了源碼,是有這行代碼的
header("Content-Type:text/html; charset=utf-8");結(jié)論
實際上,json 數(shù)據(jù)是有特定的 Content-Type,是 application/json 。后來又去看了 Laravel ,返回 json 的時候, Content-Type 就是 application/json 。出現(xiàn)這樣的問題,是因為自己不夠嚴謹,而且使用的框架有些老舊。
補充一下,后來又看了前端的代碼。實際上用 JQuery 封裝的 ajax 方法,dataType 設(shè)置為 jsonp 或者 json,都可以自動轉(zhuǎn)換為 json 格式,即使 Content-Type 是 text/html; charset=utf-8,這時用 typeof 函數(shù)打印返回值,是 object 類型,這也是之前代碼沒有問題的原因。或者使用 JSON.parse() 轉(zhuǎn)換一下返回值,也是可以的。當(dāng)然最穩(wěn)妥的方案還是后端設(shè)置 Content-Type 為 application/json。
參考資料:Content-Type。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/30035.html
摘要:輸出為因此當(dāng)我們發(fā)送令牌時,在服務(wù)端接收到的是,如果仍用處理,將發(fā)生錯誤。文件上傳失敗解決刪除你的自定義請求頭設(shè)置參見實踐補充篇,文件上傳怎么設(shè)置 fetch(url, { // GET, POST, PUT, DELETE等 method: GET, }) 關(guān)于 GET 參數(shù) 發(fā)送GET請求時的query參數(shù)不能放到對象中(如:{a:1, b:2}) 必須在 url...
摘要:默認情況下,跨域請求發(fā)起時候不包含,需要我們主動將的屬性設(shè)為才行。出現(xiàn)錯誤時,會返回完整的棧,有利排查。不然如果出現(xiàn)錯,響應(yīng)頭不包含這兩個跨域標(biāo)記,就會理所當(dāng)然地不顯示返回內(nèi)容,也就無法看到錯誤描述,根本無法排查。 首發(fā)我的博客 HTML5中提供了跨域加載數(shù)據(jù)的方法,讓我們得以從JSONP或者Flash中介等各種繞行方案中解脫出來,更加順暢地與服務(wù)器交流。另一方面,因為PHP...
摘要:目標(biāo)是讓與的交互盡可能的更友好。在版本以上已經(jīng)成為了默認的版本。不同類型的鍵值對分割符號分別是。這將會協(xié)商服務(wù)端和你安裝的支持的最高協(xié)議版本。 博客原文? HTTPie 是一個命令行 HTTP 客戶端。目標(biāo)是讓 CLI 與 Web services 的交互盡可能的更友好。它提供了一個簡單的 http 命令,可以讓我們用簡單自然的表述發(fā)送任意 HTTP 請求,并且可以輸出帶代碼高亮的結(jié)果...
摘要:如何開啟來壓縮網(wǎng)頁文件提高網(wǎng)站速度要知道網(wǎng)站的打開速度取決于瀏覽器打開下載的網(wǎng)頁文件大小。你可以在配置中開啟來壓縮網(wǎng)頁文件。默認情況下,僅壓縮文件。服務(wù)器上設(shè)置站點上設(shè)如何在中開啟壓縮服務(wù)讓網(wǎng)頁速度更快服務(wù)器設(shè)置壓縮是開發(fā)里很普遍的做法。nginx如何開啟gzip來壓縮網(wǎng)頁文件提高網(wǎng)站速度?要知道網(wǎng)站的打開速度取決于瀏覽器打開下載的網(wǎng)頁文件大小。如果傳輸?shù)捻撁鎯?nèi)容文件減少,那你網(wǎng)站的打開速度...
閱讀 2432·2021-11-15 11:38
閱讀 3617·2021-09-22 15:16
閱讀 1258·2021-09-10 11:11
閱讀 3248·2021-09-10 10:51
閱讀 3073·2019-08-30 15:56
閱讀 2847·2019-08-30 15:44
閱讀 3242·2019-08-28 18:28
閱讀 3583·2019-08-26 13:36