프로토콜이 다른경우 제이쿼리 데이터 로드
본문
안녕하세요.
도메인에서
도메인의 api를 호출하여
제이쿼리로 데이터를 읽어오지 못하나요?
하루종일 주물러도 해결이 안되네요.ㅠㅠ
참고로 프로토콜이 동일할 경우에는 문제가 없습니다.
답변 6
function cUrlGetData($url, $post_fields = null, $headers = null) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
if ($post_fields && !empty($post_fields)) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
}
if ($headers && !empty($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
return $data;
}
$post_fields = null;
$headers = [
'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'sec-ch-ua: "Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"',
'sec-ch-ua-mobile: ?0',
'user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
];
$res = cUrlGetData("http://www.bbb.com",$post_fields,$headers);
$res = json_decode($res, true);
print_r($res);
크로스도메인의 경우 서버에서 설정을 하여 허용된 도메인만 가능합니다
서버사이드 언어인 php나 jsp등은 curl을 활용하여 값을 가져올 수 있으니 백엔드쪽이 가능하다면 curl을 활용하세요
어떤 종류의 api인지는 모르겠지만
https에서는 http 컨텐츠를 가져올수없습니다.
반대는 가능.
https 에서 http 로드는 거의 불가능합니다.
jsonp 로 안되시나요 ?
답변을 작성하시기 전에 로그인 해주세요.