2012-10-23 61 views
0

我有一個WCF服務暴露JSONP接口,通過在綁定上設置CrossDomainScriptAccessEnabled屬性。有一個代碼與我的here類似。當服務器通常返回HTTP 200時,它的行爲與我預期的相同,並返回javascript,如jsonp_callback({"result":5})。然而,當我拋出一個異常的格式是一樣的東西:處理來自WCF的錯誤響應JSONP

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

的問題還有就是據我可以告訴jQuery的總是期望在JSONP回調的參數。有沒有什麼辦法可以通過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);