午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

javascript - jquery ajax contentType是啥意思?

瀏覽:237日期:2023-02-21 17:52:55

問題描述

POST請求contentType設置為application/json,但請求卻把data的json轉(zhuǎn)成了字符串?請大神指教是什么原因?代碼如下

$.ajax({method: ’POST’,url: 'demo_test.txt',data: { aa: 1, bb: 2},contentType: 'application/json',success: function (result) {} });

請求抓包

POST http://localhost:8888/demo_test.txt HTTP/1.1Host: localhostConnection: keep-aliveContent-Length: 9Origin: localhostUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36Content-Type: application/jsonAccept: */*X-Requested-With: XMLHttpRequestReferer: http://172.17.35.112:8099/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.8Cookie: selectFluence=4; VFS_USERNAME=admin; VFS_PASSWORD=123456; VFS_APPURL=; VFS_ISSAVE=true; VFS_ISDMZ=true; webserver_is_save=0; _alert=1495876699555aa=1&bb=2

問題解答

回答1:

參考:jQuery.ajax() 文檔

contentType (default: ’application/x-www-form-urlencoded; charset=UTF-8’)

Type: Boolean or String

When sending data to the server, use this content type. Default is 'application/x-www-form-urlencoded; charset=UTF-8', which is fine for most cases. If you explicitly pass in a content-type to $.ajax(), then it is always sent to the server (even if no data is sent). As of jQuery 1.6 you can pass false to tell jQuery to not set any content type header. Note: The W3C XMLHttpRequest specification dictates that the charset is always UTF-8; specifying another charset will not force the browser to change the encoding. Note: For cross-domain requests, setting the content type to anything other than application/x-www-form-urlencoded, multipart/form-data, or text/plain will trigger the browser to send a preflight OPTIONS request to the server.

一般是用 application/x-www-form-urlencoded,也就是默認值,上傳文件通常是用 multipart/form-data,現(xiàn)在很多使用 JSON 接口的也用后面這種。text/plain 我平時見得不多。

補充

jQuery 的 ajax 要發(fā)送 application/json 請求需要

contentType: 'application/json;charset=UTF-8'

processData: false

data: stringify(aObject)

比如

$.ajax('https://blablabla.com/', { contentType: 'application/json;charset=UTF-8', dataType: 'json', type: 'post', processData: false, data: JSON.stringify({user: { name: 'hello', pass: 'world'},stamp: new Date() })});

javascript - jquery ajax contentType是啥意思?

回答2:

使用的數(shù)據(jù)格式

回答3:

簡單來說,就是把你發(fā)請求的數(shù)據(jù)當做xxx類型處理。對應的,dataType,就是把服務端響應回來的數(shù)據(jù)當做xxx類型處理。

回答4:

http中傳的數(shù)據(jù)都是都是字符串,只是服務器在接受到數(shù)據(jù)時會根據(jù)contentType來用不同的方式解析字符串。對象只能存在于內(nèi)存中,不僅僅是http,所有在網(wǎng)絡中傳輸?shù)臄?shù)據(jù)都是基于字符串的。

回答5:

首先我不覺得你的抓包有問題,如果你確實是用的是POST請求的話,從抓包看起來這是個GET請求,因為POST不會對請求參數(shù)做序列化處理

下面說下contentType是啥意思?

ajax的contentType是設置的http的請求頭,這個頭的目的是告訴服務器端,我的請求參數(shù)是什么格式的數(shù)據(jù),你要按照對應的格式去處理,就這樣。默認的是 'application/x-www-form-urlencoded; charset=UTF-8',也就是普通的表單提交的格式,當然你也可以覆蓋,比如'application/json',這樣服務端可以直接拿到一個json請求參數(shù)。而不是一個一個的key value

回答6:

這只是修改請求頭中的contentType,和你接受服務器響應是什么內(nèi)容沒有關系。

你可以加上這個拿到json格式的數(shù)據(jù)。

dataType:'json'

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 伊人婷婷色 | 一级片a级片 | av天天在线| 日韩a视频| 综合九九 | 亚洲视频免费在线观看 | 97成人精品 | 美女福利在线 | 亚洲视频h | 人成网站在线观看 | 日本wwww色 | 特黄aaaaaaaaa真人毛片 | 中文字幕在线免费观看视频 | 国内自拍网站 | 亚洲美女在线视频 | 欧美视频福利 | 日韩欧美在线观看视频 | 九一在线视频 | 久久在线视频 | 欧美系列第一页 | 国产探花系列 | 精品中文字幕在线观看 | 一本加勒比北条麻妃 | 国产亚洲久久 | 国产在线观看一区二区三区 | 亚洲免费高清视频 | 国产特级黄色片 | 亚洲免费a| 色大师在线观看 | 这里只有精品在线观看 | 95国产精品| 日本五十路视频 | 亚洲最大的网站 | 久久午夜鲁丝片 | 精品一区二区在线播放 | 国产激情在线 | 亚洲第一视频 | 白白色免费视频 | 伊人色区 | 黄色一级网 | a一级黄色片|