可以看到官网实例上的post请求是 application/x-www-form-urlencoded 格式,传递的类型是Form Data
实际上调试接口发现,项目中的接口数据只能接收下图的
application/json 格式和Request Payload类型
部分代码如下
// 封装部分
post(params: {
url: string,
data: string | any[] | object,
responseType?:string,
headers?:any[]|null
}) {
this._http = new Laya.HttpRequest();
let requst = new Promise((resolve, reject) => {
this._http.once(Laya.Event.COMPLETE, this, e => {
resolve(this.onCompleteHanlder(e))
})
})
let data = params.data
let url = this.getServerFullUrl(params.url)
this._http.send(url, data, 'post', params.responseType , params.headers);
return requst;
}
//使用部分
let token = 'eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjaGVucmFuIiw.......'
let uid= '123123131123'
let data = [
{key:'xszd02',score:12}
]
this._request.post({
url:`/test/${uid}/submit`,
data,
responseType: 'text',
headers: ["Content-Type", "application/json", 'token', token ]
}).then(res => {
console.log(res)
})
还有部分源码改动如下
(查看源码发现如果是自己自定义headers,根本不走下面的那一步,isJson一直都是false,所以传对象时都是[object][object]这样的数据)
改动之后发现可以正常传递数据