2012-08-02 16 views
1

은 다음 코드 조각 고려하시기 바랍니다 jQuery를 AJAX를 통해 : 내가 JSON 크로스 도메인을 당겨 오전 어떤 이유로 나는 parseerror가 계속콜백 - Parseerror JSONP

$(function() { 
    $.ajax({ 
     type: "GET", 
     url: "http://mosaicco.force.com/siteforce/activeretailaccounts", 
     dataType: "jsonp", 
     crossDomain: true, 
     jsonp: "callback", 
     error: function(jqXHR, textStatus, errorThrown) { 
      alert('Error Message: '+textStatus); 
      alert('HTTP Error: '+errorThrown); 
      }, 
     success: function (data) { 
       var i = 0; 
         //Process JSON 
         $.each(data, function() { 
          var name = this.locname; 
          var lat = this.lat; 
          var lng = this.lng; 
          var address = this.address; 
          var address2 = this.address2; 
          var city = this.city; 
          var state = this.state; 
          var postal = this.postal; 
          var phone = this.phone; 
          var web = this.web; 
          web = web.replace("http://", ""); 

          var distance = GeoCodeCalc.CalcDistance(orig_lat, orig_lng, lat, lng, GeoCodeCalc.EarthRadiusInMiles); 

          //Create the array 
          locationset[i] = new Array(distance, name, lat, lng, address, address2, city, state, postal, phone, web); 

          i++; 
         }); 
        } 
     }); 
});​ 

반환 :

HTTP Error:Error: jQuery17209875996995251626_1343943259805 was not called 

내가 페이지에서 데이터를 잘 볼 수 있습니다. 콜백은 다음과 같습니다.

callback:jQuery17209875996995251626_1343943259805_:1343943260015 

제발 도와주세요 diagno 나가 놓치는 무엇을 se - 감사합니다!

+0

가능한 복제본 [jQuery JSON 응답은 항상 ParseError를 트리거합니다.] (http://stackoverflow.com/questions/5095307/jquery-json-response-always-triggers-a-parseerror) – Bergi

답변

4
var data = $.parseJSON(data); 

JSONP 요청을 수행 중이므로 콜백 함수에 전달 된 객체 리터럴을 얻게됩니다. 그것에 parseJSON을 사용할 수 없습니다. 어쨌든 jQuery는 지능형이며 내용 유형이 알려진 경우 항상 구문 분석을 수행합니다.

오류 메시지가 표시되는지 여부는 알 수 없지만 질문은 jQuery JSON response always triggers a ParseError입니다. 이는 해결책이었습니다.


OK, that 's. script it loads 좀 봐 : 그건 아니 valid JSONP입니다 - 그것은 패딩 콜백을 그리워. 또한 mime 유형이 잘못되었습니다. JSONP 스크립트의 경우 text/javascript or application/javascript이어야하며 전달하는 JSON은 application/json이어야합니다.

jQuery는 "스크립트"의로드를 감지하지만 아무것도 실행되지 않으면 "파일이 성공적으로로드되었지만 주어진 콜백이 호출되지 않았습니다"라는 오류가 발생합니다. - parseerror가 의심됩니다.

웹 서비스가 JSONP를 전혀 지원하는지 확인 하시겠습니까?

+0

예, 죄송합니다. 이전 호에서. 삭제 했는데도 여전히 같은 오류가 발생합니다. 다음은 jsFiddle을 사용하는 것입니다. http://jsfiddle.net/ALeez/2/ – McKev

+0

Bergi가 맞습니다. http://mosaicco.force.com/siteforce/activeretailaccounts?callback=jQuery17204995805434882641_1344010639385&_=1344010639389 은 유효한 JSONP를 생성하지 않습니다. 함수 호출에서 래핑 된 json 데이터와 유사해야합니다. JSONP를 실제로 지원한다면 콜백에 대한 쿼리 문자열 매개 변수가 다를 수 있습니다. – JayC

+0

JSON이 지원됩니다. 표시된대로 콜백을 조정했기 때문에이를 솔루션으로 표시합니다. – McKev