0

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

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

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

4

1 回答 1

1

I couldn't find a way to do this with jQuery. But for my current purposes it worked fine implementing the JSONP myself:

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);
于 2012-10-26T19:00:58.057 回答