2013-12-20 1 views
0

콘솔에 올바르게 표시되는 JSONP 데이터가 올바르게 반환되었습니다.jQuery.ajax()를 통해 반환 된 JSONP 데이터에 액세스하려고 시도했습니다.

group({ 
    "blah": "blah", 
    "blahblah": "blahblah", 
    "blahblahblah": "blahblahblah" 
}); 

이것은 나의 ajax 호출입니다.

$.ajax({ 
    type: 'GET', 
    url: 'test.php', 
    dataType: 'jsonp', 
    cache: false, 
    jsonpCallback: 'group', 
    statusCode: { 
    404: function() { 
     alert("page not found"); 
    } 
    }, 
    success: function(group){ 
    console.log(group); 
    $('#theTest').append(group.name); 
    }, 
    error: function(response1, response2, response3){ 
    console.log("Fail!"); 
    console.log(response1); 
    console.log(response2); 
    console.log(response3); 
    } 
}); 

JSON은 '그룹'으로 묶입니다. 시도하고 그 데이터에 액세스 할 때, 나는 그렇게 할 수 없다.

  • 콘솔에 값이있는 group.name이 사이트에있을 때 표시되지 않습니다.
  • 그룹 [0] g에게 반환
  • 그룹 [1] 리턴 나는 그것이 이런 식으로 반환되는 왜 모든 것에 같은 혼란 스러워요

O를

  • 그룹 [2] 반환 r에. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?

  • +0

    왜'jsonpCallback 설정하는 'group''를? –

    +0

    좋은 질문입니다. 나는 잘 모르겠다. 콜백을 설정 했었습니다 : 데이터 내부의 '그룹'은 이전에 이동했지만 이동했습니다. 내 PHP 파일이 콜백을 찾고있다. – Dave

    +0

    콜백 또는 그 이름을 수동으로 설정할 필요가 없습니다. 'dataType : 'jsonp ''을하면, jQuery는 생성 된 콜백의 이름을 가진 URL에'GET' 매개 변수를 추가합니다 :'$ _GET ['callback ']'. PHP 스크립트가 다음을 반환 할 때 이것을 사용해야합니다 :'echo $ _GET [ 'callback']. '('.json_encode ($ data). ')';'. –

    답변

    1

    귀하의 아약스 요청이 올바르지 않습니다, 그것은

    $.ajax({ 
        type: 'GET', 
        url: 'test.php', 
        dataType: 'jsonp', 
        cache: false, 
        jsonpCallback: 'group', 
        statusCode: { 
        404: function() { 
         alert("page not found"); 
        } 
        }, 
        success: function(group){ 
        console.log(group); 
        $('#theTest').append(group.name); 
        }, 
    }); 
    

    dataType, cachecallback 같은 오류가 서버에 jsonp

    +0

    이 변경 작업을 마친 후 실행하면 오류가 발생합니다. 특히, 나는 점점 : parsererror 및 SyntaxError {} – Dave

    +0

    @Dave 어떤 줄이 코드에 있습니까? – Musa

    +0

    응답 2 및 응답 3 – Dave

    0

    해야 데이터 필드 및 데이터 형식으로 전달 될 수 없습니다해야 측면 응답. JSONP의 작동 방식은 GET 요청에 전달 될 알려진 콜백 매개 변수를 지정하는 것입니다. 서버 측에서는 JSON 패딩에 대한 캡슐화 메서드 호출을 얻기 위해 해당 매개 변수를 추출해야합니다. jsonpCallback와 예에

    : '그룹', 서버 측의 요구에 :

    $methodName = $_GET['group'] 
        $response = $methodName . '(' . <YOUR JSON RESPONSE> . ');' 
        echo $response 
    
    관련 문제