处理来自WCF JSONP的错误响应

时间:2012-10-23 04:22:48

标签: javascript jquery wcf jsonp

我有一个WCF服务,通过在绑定上设置CrossDomainScriptAccessEnabled属性来公开JSONP接口。有一个示例代码类似于我的here。当服务器正常返回HTTP 200时,它的行为与我预期的一样,并返回类似jsonp_callback({"result":5})的javascript。但是,当我抛出异常时,格式如下:

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

问题是,据我所知,jQuery总是期望JSONP回调中有一个参数。有没有办法可以使用jQuery的JSONP处理访问第二个参数?是否有另一个合理的框架可以使这更容易?

1 个答案:

答案 0 :(得分: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);