我在 codegniter 中创建了rest api,并且必须通过在核心php中使用curl来调用它。我已经尝试过,但是它不维护服务器端的会话。
使用ajax CREATE TABLE `_b_price` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`tickerDate` varchar(100) NOT NULL,
`ticker` varchar(50) DEFAULT NULL,
`date` DATE DEFAULT NULL,
`close` int(11) DEFAULT NULL,
`high` int(11) DEFAULT NULL,
`low` int(11) DEFAULT NULL,
`numOfTrades` int(11) DEFAULT NULL,
`open` int(11) DEFAULT NULL,
`value` bigint(20) DEFAULT NULL,
`volume` int(11) DEFAULT NULL,
`vwap` int(11) DEFAULT NULL,
`state` varchar(5) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `tickerDate` (`tickerDate`),
KEY `date` (`date`),
KEY `ticker` (`ticker`)
) ENGINE=InnoDB AUTO_INCREMENT=2667983 DEFAULT CHARSET=utf8
可以正常工作,但是 curl 不能正常工作。
工作正常的Ajax代码:-
withCredentials
我想用我尝试过的Curl做到这一点:-
$.ajax({
url: apiurl,
type: "POST",
crossDomain: true,
xhrFields: {
withCredentials: true
},
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(form_data)
}).done(function (data) { //on success
console.log("done);
})
服务器端:-
$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL,$apiurl);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
));
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$result = curl_exec($curl);
return $result;
答案 0 :(得分:0)
我希望这对您有用。
curl --no-cookies --no-check-certificate --header "Cookie: cookie_name" "URL"