PHP網站制作之curl來模擬ajax來發送數據

2023-02-20    分類: 網站制作

ajax不管是post還是get傳遞數據的時候是什么樣的形式傳遞數據呢?
如果我們用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.接收數據流
functiongetRawData(){
$put=array();
parse_str(file_get_contents('php://input'),$put);
return$put;
}
//實用函數
/*獲取與發送數據
*$url獲取路地址
*$postData傳遞數據數組形式
*$isDebug是否調試打印發送地址和發送數組
*return返回如果是字符則是字串,json格式則返回數組
*/
functioncurlHttp($url,$postData,$isDebug=false){
$url=strstr($url,'http:')?$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;
}
/*對curlHttp返回的list一維數組的如果含json串轉為深度轉換數組
*$data一維數組,鍵值含有json字符串
*return返回一個標準的數組
**/
functionlistToArray($data){
$arr=array();
foreach($dataas$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;
}
/*判斷數據是否為json數據備注:json_decode對于數組和數字也會判定為json數據需要加上{的判定
*$string字符串
*return返回trueorfalse
**/
functionis_json($string){
$isjsonf=json_decode($string);
$isjsont=strstr($string,'{');
return($isjsonf&&$isjsont)?true:false;
}
前端ajax獲取數據

代碼

<script>
$.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');
}
})

網頁標題:PHP網站制作之curl來模擬ajax來發送數據
分享網址:http://www.kartarina.com/news21/238421.html

網站建設、網絡推廣公司-創新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司
主站蜘蛛池模板: 国产成A人亚洲精V品无码| 亚洲日韩v无码中文字幕| 无码人妻丰满熟妇区免费| 一本加勒比hezyo无码专区| 亚洲AV无码乱码在线观看富二代 | 成在线人免费无码高潮喷水| 亚洲中文字幕久久精品无码喷水 | 亚洲AV无码精品国产成人| 亚洲精品一级无码鲁丝片| 亚洲精品无码久久久久秋霞| 国产成人AV一区二区三区无码| 麻豆精品无码国产在线果冻 | 一夲道dvd高清无码| 亚洲中久无码永久在线观看同| 中文字幕无码精品亚洲资源网久久 | 亚洲精品久久无码| 国产成人AV一区二区三区无码| 国产精品无码aⅴ嫩草| 久久久久成人精品无码中文字幕 | 久久无码人妻一区二区三区午夜| 国产av永久精品无码| 亚洲AV无码一区二区三区牲色| 无码国产精品一区二区免费16 | 人妻无码αv中文字幕久久琪琪布| 精品无码中出一区二区| 日本精品人妻无码免费大全| 无码成人精品区在线观看| 久久水蜜桃亚洲av无码精品麻豆 | 蜜臀AV无码一区二区三区 | 无码人妻精品一区二区三区久久久| 高清无码视频直接看| 国产在线无码一区二区三区视频| 亚洲AⅤ无码一区二区三区在线| 狠狠久久精品中文字幕无码| 国产AV无码专区亚洲AV琪琪| 无码专区国产精品视频| 亚洲无码高清在线观看 | 国产av无码专区亚洲av果冻传媒 | AV无码精品一区二区三区| 久久久久亚洲AV无码专区体验| 日韩精品无码一区二区三区不卡|