设置Content-Type

Posted star

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置Content-Type相关的知识,希望对你有一定的参考价值。

$.ajax设置Content-Type

默认get方法没有Content-Type,post方法的Content-Type为:application/x-www-form-urlencoded; charset=UTF-8

手动设置

$.ajax({
  type: \'post\',
  url:\'/contentType\',
  contentType:\'application/x-www-form-urlencoded\',//手动设置
  data:{
    username:\'admin\',
    password:\'123123\'
  },//data可以是对象,使用contentType: “application/json”则data只能是json字符串
  dataType:\'json\',
  success:function (data) {

  }
})

传递formData类型数据

//关键是设置:processData 和 contentType
//在使用jQuery的$.ajax()方法的时候参数processData默认为true(该方法为jQuery独有的)默认情况下会将发送的数据序列化以适应默认的内容类型application/x-www-form-urlencoded
var formData = new FormData();

var name = $("input").val();

formData.append("file",$("#upload")[0].files[0]);

formData.append("name",name);

$.ajax({

url : Url,

type : \'POST\',

data : formData,

// 告诉jQuery不要去处理发送的数据,用于对data参数进行序列化处理 这里必须false

processData : false,

// 告诉jQuery不要去设置Content-Type请求头

contentType : false, //必须
})

axios设置content-ype

1、默认的transformRequest 会判断是否传入了Content-Type如果没有传入就根据数据类型自行设置

//default.transformRequest
if (utils.isURLSearchParams(data)) {
    setContentTypeIfUnset(headers, \'application/x-www-form-urlencoded;charset=utf-8\');
    return data.toString();
}
if (utils.isObject(data)) {
    setContentTypeIfUnset(headers, \'application/json;charset=utf-8\');
    return JSON.stringify(data);
}
//setContentTypeIfUnset
function setContentTypeIfUnset(headers, value) {
    if (!utils.isUndefined(headers) && utils.isUndefined(headers[\'Content-Type\'])) {
        headers[\'Content-Type\'] = value;
    }
}

2、formData类型的数据会删除传入的Content-Type,由浏览器自行设置

if (utils.isFormData(requestData)) {
    delete requestHeaders[\'Content-Type\']; // Let the browser set it
}
Content-TypetransformRequestpost-urlsearchpost-objectpost-formData
application/x-www-form-urlencoded;charset=utf-8;application/json;charset=utf-8;multipart/form-data; boundary=----WebKitFormBoundaryBaQVpNmusAaiwJJy
传入application/x-www-form-urlencoded;application/x-www-form-urlencoded;multipart/form-data; boundary=----WebKitFormBoundaryBaQVpNmusAaiwJJy
传入传入的值传入的值multipart/form-data; boundary=----WebKitFormBoundaryBaQVpNmusAaiwJJy
传入传入传入的值传入的值multipart/form-data; boundary=----WebKitFormBoundaryBaQVpNmusAaiwJJy

以上是关于设置Content-Type的主要内容,如果未能解决你的问题,请参考以下文章

如何通过代码设置片段标签?

VSCode插件开发全攻略代码片段设置自定义欢迎页

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?

javascript 用于在节点#nodejs #javascript内设置react app的代码片段

markdown 在Intel Nuc上设置Ubuntu Web服务器,步骤和代码片段