2013-11-27 2 views
0

json과 php로 한 서버에서 다른 서버로 요청하려고합니다.Json이 다른 도메인으로 요청합니다.

내 HTML 페이지 :

$.ajax({ 
      type: "POST", 
      url: "https://api.domain.com/gateway/partners/create_account.ajax.php", 
      dataType: 'jsonp', 
      crossDomain: true, 
      data: { "name" : "Test name"}, 
      success: function(data) 
      { 
       console.log(data.responseText); 
      } 
      }); 

내 PHP는 다음과 같습니다

내 콘솔에서 수신 할
$name = $_GET['name']; 
$data = array("Hello", $name); 

echo json_encode($data); 

: 안녕하세요 테스트 이름

내가 잘못 무슨 짓을?

+0

어떤 오류가 발생합니까? –

+0

JSONP 및 POST 요청을 사용할 수 없습니다. 참조 : http://stackoverflow.com/questions/2699277/post-data-to-jsonp – Cyrus

답변

3

당신은 다음과 같습니다

  1. 것은 jQuery를가 JSONP
  2. 쓰기 PHP로 응답을 처리하기 위해 말하는 그 것이다 (하지 JSONP) 출력 JSON ... 아마도 text/html 콘텐츠 유형.
  3. GET 요청 대신 POST 요청을 시도 중입니다. JSONP는 GET 만 지원합니다.
  4. 요청에 의해 반환 된 데이터를 마치 XHR 개체처럼 처리하려고 시도합니다.

JSONP 응답의 최소한의 예는 다음과 같습니다 당신이 another technique to bypass the same origin policy을 사용할 수,

<?php 
header("Content-Type: application/javascript"); 
$name = $_GET['name']; 
$data = array("Hello", $name); 

echo $_GET['callback']; 
echo "("; 
echo json_encode($data); 
echo ");"; 

이 그럼 당신은 type: "POST"type: "GET"를가되도록 JS를 변경해야하고 console.log(data.responseText);console.log(data);

또는되고 여전히 POST를 사용합니다.

+0

Thnx, 이것이 효과적입니다! –

0

jsonp는 누구나 스크립트를 호출 할 수 있기 때문에 오래된 연습과 안전하지 않은 것입니다. To는 jsonp 호출이 실패 할 때 오류를 검색하는 아주 기본적인 것입니다.

요청에 CORS 헤더를 구현할 수 있으며 간단한 XHR 호출 만 사용할 수 있습니다.

Access-Control-Allow-Origin: * 

이 문제가 해결되지만, 더 와일드 카드 대신 정확한 도메인을 사용한다 :

헤더를 Addeding.

관련 문제