2012-06-01 3 views
0

일부 응답 필터링을 수행하기 위해 ajax jsonp 응답을 가로 채려고합니다. 내 생각에 사용자 지정 변환기를 사용하여이 작업을 수행 할 수있었습니다. 그러나 변환기 기능은 절대로 실행되지 않습니다. 내가 무엇이 누락 되었습니까?jQuery AJAX 변환기 jsonp

var ajax_options = { 
    dataType: 'jsonp', 
    jsonp: 'callback', 
    url: url, 
    data: parameters, 
    success: success, 
    converters: { 
     "jsonp": function (raw) { 
      console.log(raw); 
      return raw; 
     } 
    } 
}; 
$.ajax(ajax_options); 

덕분에, docs에서 맥팔레인

+1

[변환기] (http://api.jquery.com/extending-ajax/#Converters)의 목표는 아닙니다. ("특정 데이터 유형에 대한 응답으로 일반화 된 dataFilter 콜백 예상했던 것과 다르다 "). 단순히 성공 콜백 내부를 필터링하지 않는 이유는 무엇입니까? –

+0

왜냐하면 나는 나의 API에 의해 던져진 에러를 가로 채고 싶기 때문에 나는 일반적으로 쓰는 모든 콜백 함수에서 그것을 체크하고 싶지 않다. dataFilter는 jsonp에서 작동하지 않습니다. – McFarlane

+0

도움이된다면 json 객체를 보내고 html 응답 –

답변

0

저는 이제 상식을 경청하고 가난한 변환기를 오용하지 않기로했습니다. $ .proxy()를 사용하여 콜백 함수에서 올바른 컨텍스트를 유지하면서 모든 JSONP 응답을 가로 채기위한 솔루션을 만들었습니다.

제 솔루션은 jQueryMX에 크게 의존하기 때문에 여기에 소스를 붙여 넣지는 않겠습니다.

+0

지난 2 일 동안 나는 그것을 작동시키는 법을 배제하지 않고 모든 시간을 보냈다. 어떻게 할 수 있는지 이해하도록 도와 줄 수 있습니까? 도와주세요! 미리 감사드립니다 – neoDev

+0

정말 중요합니다. – neoDev

0

는, 변환기는 다음과 같습니다

dataType와 - 투 - dataType와 컨버터의지도. 각 변환기의 값은 응답의 변환 된 값을 리턴하는 함수입니다.

따라서 한 데이터 유형에서 다른 데이터 유형으로 변환하는 데 사용됩니다.

+0

을 반환하기 위해'convertters : { 'text json': true}'를 사용하면 어떻게됩니까? 응답을 콜백 함수로 반환하기 전에 응답을 변환하려고합니다. – McFarlane

+0

변환하려는 대상에 따라 다릅니다. –

+0

일반적으로 원시 API 응답을 필터링하기 위해 변환기를 "잘못 사용"할 수 있습니까? jsonp 응답을 필터링하는 다른 방법은 없습니다. – McFarlane