2012-10-23 4 views
0

바인딩에 CrossDomainScriptAccessEnabled 속성을 설정하여 JSONP 인터페이스를 표시하는 WCF 서비스가 있습니다. 내 코드 here과 비슷한 코드 예제가 있습니다. 서버가 일반적으로 HTTP 200을 반환 할 때 예상대로 동작하고 jsonp_callback({"result":5})과 같은 javascript를 반환합니다. 지금까지의 내가 jQuery를 말할 수 항상 JSONP 콜백에서 하나의 매개 변수를 기대하는이WCF JSONP에서 오류 응답 처리

jsonp_callback({"error_message":"needs auth"}, 401); 

문제 : 나는 예외를 던질 때 형식은 같은입니다. jQuery의 JSONP 처리로 두 번째 매개 변수에 액세스 할 수있는 방법이 있습니까? 더 쉽게 만들 수있는 또 다른 합리적인 틀이 있습니까?

답변

1

jQuery를 사용하여이 작업을 수행 할 수있는 방법을 찾지 못했습니다. 하지만 현재 내 목표로 JSONP를 직접 구현하는 데는 아무런 문제가 없습니다.

var scriptTag = document.createElement('script'); 
var cb = "jsonp_" + Math.floor(Math.random() * 1000000); 
window[cb] = function(result, statusCode) { 
    try { 
     onResult(result, statusCode); 
    } finally { 
     delete window[cb]; 
    } 
} 
scriptTag.src = url + "?callback=" + cb + "&input=" + encodeURIComponent(data); 
$('head').append(scriptTag);