Javascript jqueryajax多调用错误处理

Javascript jqueryajax多调用错误处理,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图处理错误。这里是我的例子——我有多个来自不同URL的AJAX调用。我想当某个url响应错误500时知道哪个url是。这是我的密码 var urls = ["url1.php", "url2.php", "url3.php"]; $.each(urls, function(index, value) { $.ajax({ global: false, type: 'POST', url: value, dataType:

我试图处理错误。这里是我的例子——我有多个来自不同URL的AJAX调用。我想当某个url响应错误500时知道哪个url是。这是我的密码

var urls = ["url1.php", "url2.php", "url3.php"];
$.each(urls, function(index, value) {
    $.ajax({
        global: false,
        type: 'POST',
        url: value,
        dataType: 'html',
        data: returnData(),
        success: function(result) {
            switch(value) {
                case "url1.php":
                    break;
                case "url2.php":
                    break;
                case "url3.php":
                    break;
            }
        },
        error: function (e, request, status, error) {
            if (e.status == 500) {
                alert("500 error");
            }
        }
    });
});
现在,当其中一个返回错误500时,我无法知道是哪个url。
如果有人给我建议,我将非常感激。提前感谢。

更新:,因为我无法删除此答案,因为它是已接受的答案;这不是更好的答案,请使用
value
变量参考的答案

你可以这样说,h,o,u,l,d:

        error: function (e, request, status, error) {
            if (e.status == 500) {
                alert("500 error" + $(this)[0].url);
            }
        }

您可能需要调试以确保
$(this)[0]。url
部分,我只是在我的代码的某个地方的错误回调中检查在哪里可以找到url,它可能与您的不一样?我不确定。但是您应该能够在$(this)对象中找到url。

将在闭包中捕获
变量。我们也要这样做:

alert("500 error from " + value);

它可能在“请求”中?@biseibutsu好的,但是如何?你知道吗?你可以从浏览器的开发工具中找到请求中的url,你应该可以看到请求本身。@biseibutsu是的,我知道这一点。但我想在错误消息中显示url。使用变量“value”?太多了!很好!很高兴能帮上忙!这真的有效吗
不应传递给回调函数。@Barmar,它确实有效;但这可能不是最好的解决方案,您能告诉我为什么不应传递
?我正在访问它。老实说,使用
value
看起来更干净、更好,但我认为它是未定义的。@biseibutsu
除非您使用ES6 fat arrow函数,否则闭包中不会捕获此
$.ajax
文档中没有任何内容表明jQuery在调用
error
函数时显式使用
this
作为上下文。这是比@biseibutsu更好的答案