我有一个WCF服务,通过在绑定上设置CrossDomainScriptAccessEnabled
属性来公开JSONP接口。有一个示例代码类似于我的here。当服务器正常返回HTTP 200时,它的行为与我预期的一样,并返回类似jsonp_callback({"result":5})
的javascript。但是,当我抛出异常时,格式如下:
jsonp_callback({"error_message":"needs auth"}, 401);
问题是,据我所知,jQuery总是期望JSONP回调中有一个参数。有没有办法可以使用jQuery的JSONP处理访问第二个参数?是否有另一个合理的框架可以使这更容易?
答案 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);