application/json和application/x-w
2017-08-18 本文已影响0人
CoderZNB
最近在搞react-native 跟 微信小程序的时候,用到里面的网络请求请求数据遇到缺少必须参数问题:
我已经确定参数填写无误,为什么还是报我缺少必要参数问题呢
原来是我们PHP没有做JSON解析;
application/json
和application/x-www-form-urlencoded
都是表单数据发送时的编码类型。
默认地,表单数据会编码为 application/x-www-form-urlencode
。就是说,在发送到服务器之前,所有字符都会进行编码。如果我们传application/json
,并且PHP人员没做JSON解析,肯定会报缺少必要参数.所以如果PHP不改,那就我们自己改了....
微信请求方法
wx.request({
url: 'https://seller.yueduomi.com/index.php?m=Admin&c=Index&a=index',
method: 'POST',
data: { seller_id: 2 },
header: {
'content-type': 'application/json'
},
success: function (res) {
console.log(res.data)
}
})
把'content-type': 'application/json'
换成'content-type': 'application/x-www-form-urlencoded'
就完美的请求出来了
RN请求
let url = 'https://seller.yueduomi.com/index.php?m=Admin&c=Index&a=allFans'
fetch(url,{
method:'POST',
headers:{
'Content-Type': 'application/x-www-form-urlencoded',
},
body:'seller_id=1&page='+this.state.page
})
.then((response)=>response.json())
.then((responseJson) =>{
console.log(responseJson)
})
.catch((error)=>{
})