假如我在函数中有这个jQuery AJAX调用:
function callPageMethod(methodName, parameters) {
var pagePath = window.location.href;
$.ajax({
type: "POST",
url: pagePath + "/" + methodName,
contentType: "application/json; charset=utf-8",
data: parameters,
dataType: "json",
success: function (response) {
alert("ajax successful!");
},
error: function (response) {
// this line is not working!
throw response.responseText;
}
});
} // end of function
...我在Visual Studio 2010中收到此错误:
Microsoft JScript runtime error: Exception thrown and not caught
。
看起来好像这个问题与Visual Studio无关,但是特别适合于javascript。
例如,我可以在$.ajax
调用之前在此函数中声明一个变量,在error:
中分配它,然后在之后将其throw
移出函数 $.ajax
打电话没问题......
那么如何以这种方式从嵌套函数中抛出错误呢?如果可能的话,我想在此函数之外catch
出现此错误。
答案 0 :(得分:0)
所以,我发现这里有一些可能的解决方案:
1 - 分配一个带有error
值的变量,然后将其抛出
$.ajax
致电:
function callPageMethod(methodName, parameters) {
var errorValue = null;
$.ajax({
...
...
...
error: function (response) {
errorValue = response.responseText;
}
});
if (errorValue != null) {
throw errorValue;
}
}
2 - 使$.ajax
调用同步:
function callPageMethod(methodName, parameters) {
var errorValue = null;
$.ajax({
...
...
...
async: false,
error: function (response) {
// now it works:
throw response.responseText;
}
});
}