如果我们用curl来模拟ajax来发送数据时候,我们构造的$data应该是怎样才是标准的呢?
1、首先最容易想到的是数组结果如$data=array('a'=>1,'b'=>2);
2、还会想到json数据格式如$data=json_encode(array('a'=>1,'b'=>2));
这上面的两个方式在接收端作了限制后都是不正确的。(大多数数据接口的方式);
标准的传递数据格式是:a=1&b=2
1.接收数据流
function 公司网站建设 getRawData(){
$put = array();
parse_str(file_get_contents('php://input'), $put);
return $put;
【营销型网站哪家做的好】 }
//实用函数
function curlHttp($url,$postData,$isDebug=false){
$url=strstr($url,'')?$url:C('HTTPURL').$url;
if($isDebug){dump($url);dump($postData);}//调试则输出发送的地址和发送的数据串
$ch=curl_init();// 初始化
//$header = array('Expect:');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_HEADER, 0);//是否取得头信息
网站建设广告 curl_setopt($ch, CURLOPT_POST, true);//post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));//http_build_query自动构造url发送信息
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);//20秒连接超时
//curl_setopt($ch, CURLOPT_HTTPHEADER, 【中高端网站建设】$header);
$data=curl_exec($ch);
$toArray=json_decode($data,true);
if(is_array($toArray)){
$data=listToArray($toArray);
}
return $data;
}
function listToArray($data){
$arr=array();
foreach($data as $k=>$v){
if(is_json($v)){
$arr[$k]=listToArray(json_decode($v,true));
}elseif(is_array($v)){
$arr[$k]=listToArray($v);
}else{
$arr[$k]=$v;
}
}
return $arr;
}
function is_json($string) 企业网站建设哪家{
$isjsonf=json_decode($string);
$isjsont=strstr($string,'{');
return ($isjsonf && $isjsont)?true:false;
}
前端ajax获取数据
【设计网站】
$.ajax({
url:"api接口地址",
type:'POST',//参数方式
dataType: "json",//数据类型
data:{"action":1,"OrderID":"112-2316089-0269002","MD5Key": "55E9D105D116DBEC3E8285EB0F5C6404"'},
success:function (val) {
console.log(val);
},error:function(){
alert('error');
}
})
网站维护服务 手机网站制作 专业订制网站制作
请立即点击咨询我们或拨打咨询热线: 13968746378,我们会详细为你一一解答你心中的疑难。项目经理在线