[JQUERY] 간단한 jQuery를, PHP와 JSONP 예?
JQUERY간단한 jQuery를, PHP와 JSONP 예?
해결법
-
1.여기에 외부 도메인이 자동으로 조치만을 JSONP 요청, 예를 들어, 내 트윗 슬라이더에 $ .getJSON을 사용하는 경우
여기에 외부 도메인이 자동으로 조치만을 JSONP 요청, 예를 들어, 내 트윗 슬라이더에 $ .getJSON을 사용하는 경우
소스 코드를 보면 당신은 내가 .getJSON을 사용하여 트위터 API를 호출하고 있음을 볼 수 있습니다.
그래서 귀하의 예는 다음과 같습니다 이는 테스트 및 작품 (당신은 행동에 그것을보고 http://smallcoders.com/javascriptdevenvironment.html에 갈 수 있습니다)
//JAVASCRIPT $.getJSON('http://www.write-about-property.com/jsonp.php?callback=?','firstname=Jeff',function(res){ alert('Your name is '+res.fullname); }); //SERVER SIDE <?php $fname = $_GET['firstname']; if($fname=='Jeff') { //header("Content-Type: application/json"); echo $_GET['callback'] . '(' . "{'fullname' : 'Jeff Hansen'}" . ')'; } ?>
? 콜백 = 참고? 와 + res.fullname
-
2.우선 당신은 JSONP를 사용하여 POST 요청을 할 수 없습니다.
우선 당신은 JSONP를 사용하여 POST 요청을 할 수 없습니다.
무엇 기본적으로 일어나고있는 것은 동적 스크립트 태그는 데이터를로드 삽입되어 있다는 것입니다. 따라서에만 요청이 가능합니다 GET.
또한 데이터의 요청이 변수에 데이터를로드 완료 후에 호출되는 콜백 함수로 포장한다.
이 모든 과정은 당신을 위해 jQuery를에 의해 자동으로 진행됩니다. 그냥 외부 도메인에 $ .getJSON을 사용하여 불구하고 항상 일을하지 않습니다. 나는 개인적인 경험 밖으로 말할 수있다.
가장 좋은 것은 및 콜백 = 추가하고있다? 당신은 URL로.
서버 측에서 당신은 당신의 데이터가이 콜백 함수에 싸여되어 있는지 확인있어.
즉.
echo $_GET['callback'] . '(' . $data . ')';
편집하다:
충분히 그렇게 때문에 리암의 대답에 대한 언급을 아직 담당자를 통해 여기에 해결책이 없습니다.
리암의 라인을 교체
echo "{'fullname' : 'Jeff Hansen'}";
와
echo $_GET['callback'] . '(' . "{'fullname' : 'Jeff Hansen'}" . ')';
-
3.더 많은 제안
더 많은 제안
자바 스크립트 :
$.ajax({ url: "http://FullUrl", dataType: 'jsonp', success: function (data) { //Data from the server in the in the variable "data" //In the form of an array } });
PHP 콜백 :
<?php $array = array( '0' => array('fullName' => 'Meni Samet', 'fullAdress' => 'New York, NY'), '1' => array('fullName' => 'Test 2', 'fullAdress' => 'Paris'), ); if(isset ($_GET['callback'])) { header("Content-Type: application/json"); echo $_GET['callback']."(".json_encode($array).")"; } ?>
-
4.유효한 JSON 배열로 서버 응답을하려면 괄호 (에서 JSON 포장) 콜백을 앞에 추가 :
유효한 JSON 배열로 서버 응답을하려면 괄호 (에서 JSON 포장) 콜백을 앞에 추가 :
echo $_GET['callback']."([{'fullname' : 'Jeff Hansen'}])";
JSON에 네이티브 PHP 배열을 변환합니다로 json_encode ()를 사용 :
$array = array( 'fullname' => 'Jeff Hansen', 'address' => 'somewhere no.3' ); echo $_GET['callback']."(".json_encode($array).")";
-
5.간단한 jQuery를은, PHP와 JSONP의 예는 다음과 같습니다 :
간단한 jQuery를은, PHP와 JSONP의 예는 다음과 같습니다 :
창로드 = 함수 () { {(아약스 $ 캐시 : 거짓, URL : "https://jsonplaceholder.typicode.com/users/2" dataType와 'JSONP' 입력 : 'GET'를, 성공 : 기능 (데이터) { CONSOLE.LOG ( '데이터'데이터) }, 오류 : 함수 (데이터) { CONSOLE.LOG (데이터); } }); }; <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> script>
-
6.
$.ajax({ type: "GET", url: '<?php echo Base_url("user/your function");?>', data: {name: mail}, dataType: "jsonp", jsonp: 'callback', jsonpCallback: 'chekEmailTaken', success: function(msg){ } }); return true;
컨트롤러에서 :
public function ajax_checkjp(){ $checkType = $_GET['name']; echo $_GET['callback']. '(' . json_encode($result) . ');'; }
-
7.이 옵션을 사용합니다 ..
이 옵션을 사용합니다 ..
$str = rawurldecode($_SERVER['REQUEST_URI']); $arr = explode("{",$str); $arr1 = explode("}", $arr[1]); $jsS = '{'.$arr1[0].'}'; $data = json_decode($jsS,true);
이제 ..
값에 액세스하기 위해 [ 'elemname'] $ 데이터를 사용한다.
JSON 개체와 JSONP 요청을 보냅니다.
요청 형식 :
$.ajax({ method : 'POST', url : 'xxx.com', data : JSONDataObj, //Use JSON.stringfy before sending data dataType: 'jsonp', contentType: 'application/json; charset=utf-8', success : function(response){ console.log(response); } })
from https://stackoverflow.com/questions/6809053/simple-jquery-php-and-jsonp-example by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 그 내용의 일치에 의해 요소를 선택 (0) | 2020.10.06 |
---|---|
[JQUERY] 크롬에서 로컬 파일을 사용하여 jQuery를해서 getJSON 문제 (0) | 2020.10.06 |
[JQUERY] jQuery.active 기능 (0) | 2020.10.06 |
[JQUERY] 발 ()는하지 jQuery를 트리거의 변화 ()를하지 [중복] (0) | 2020.10.06 |
[JQUERY] jQuery를에 HTML 테이블에 JSON 배열로 변환 (0) | 2020.10.06 |