프로토콜이 다른경우 제이쿼리 데이터 로드

프로토콜이 다른경우 제이쿼리 데이터 로드

QA

프로토콜이 다른경우 제이쿼리 데이터 로드

본문

안녕하세요.

 

https://www.aaa.com

 

도메인에서

 

http://www.bbb.com

 

도메인의 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);

넵 체크를 못했네요.
accept: text/html  -------> accept: application/json 변경

그런데 컴대장님은 워낙 출중하신 실력을 가지고 계신분인데 이 내용이야 아실테고 혹시라도 ajax jsonp로 우회 하신분이 있으신가 질문하신거 같네요.

답변해 주신 모든 분들께 감사드립니다.
벌이뉨 bbb 사이트 제어권이 있으면 어떻게 ajax jsonp로 우회할 수 있는지 좀 알려주세요.
넘기는 변수들이 4개인데 input 항목으로 구성되어있고 post나 get방식도 아니라 난감하네요.
jsonp 값을 가져와 현재 화면 하단에 뿌려주는것이라 curl로 구현하기가 힘드네요.
유용한 예제 감사합니다.

크로스도메인의 경우 서버에서 설정을 하여 허용된 도메인만 가능합니다
서버사이드 언어인 php나 jsp등은 curl을 활용하여 값을 가져올 수 있으니 백엔드쪽이 가능하다면  curl을 활용하세요

jsonp 로 안되시나요 ?

네...
https://aaa.com에서  http://bbb.com을 호출하면 데이터는 보이는데 가져오지를 못합니다.

개발자 모드에서 해당 URL을 클릭해 보면 결과값은 정상인데 "응답 데이터를 로드하지 못했습니다."라고 메시지가 보이네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,638 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT