单击按钮时,我会进行 jsonp 调用。
function clickHandler(e) {
e.preventDefault();
var url = "some.url.with?params";
$http.jsonp(url).success(function () {$scope.success();})
.error(function () {$scope.failure();});
}
测试:
$httpBackend.expectJSONP(this.url + '&' + $.param(this.params)).respond({status: 200});
$('button').click();
$rootScope.$digest(); // this was suggested in few answers, doesn't work for me though
$httpBackend.flush();
但我不断收到No pending requests to flush failure。
在 JSONP 调用的情况下,我们需要做些什么不同的事情。在其他任何地方,这种格式都有效。
PS:是的,我打电话(很多问题,人们实际上是在打电话或触发触发事件的动作)。至少,我看到代码到达了我在代码中提出请求的那一行。