Tôi đang gọi trang web của bên thứ ba bằng cách sử dụng jQuery ajax. Theo trang của họ, họ đã gửi cho tôi mã trạng thái 200 nếu đăng nhập thành công và 401 nếu đăng nhập không thành công. Đây là mẫu mã jquery của tôi. Mã này hoạt động tốt trên IE nhưng không hoạt động trên Chrome hoặc Firefox. Điều gì có thể là vấn đề?Xử lý jQuery ajax 401 Không được phép
$.ajax({
type: 'GET',
url: hostURL + 'j_teo_security_check?callback=?',
dataType: 'json',
data: ({j_username : $("#inp_user_name").val(), j_password: $("#inp_user_pwd").val()}),
statusCode: {
401:function() { alert("401"); },
404:function() { alert("404"); },
200:function() { alert("200"); },
201:function() { alert("201"); },
202:function() { alert("202"); }
},
complete: function(httpObj, textStatus){
alert(httpObj.status);
},
error: function(){
alert("error");
},
async: false
});
Tôi đã thử tất cả các lỗi chức năng, thành công, đầy đủ và trạng thái Mã. Không ai trong số họ xử lý lỗi 401.
là yêu cầu/phản hồi ok trên firebug? – skafandri
Dữ liệu được gửi trên IE & Chrome ('console.log' chúng) là gì? Bạn không có nhiều phần tử với ID 'inp_user_name' hoặc' inp_user_pwd'? Thử thêm tùy chọn 'cache: false'. Ngoài ra, bạn có thể xóa dấu ngoặc đơn trên dòng 'dữ liệu: ([...])'. Ngoài ra, bạn có sử dụng mã HTML không? Loại phần tử nào là "inp_user_xxx"? – pomeh
Không. Mọi thứ hoạt động tốt với yêu cầu. Không có vấn đề với mã trạng thái 200 khi tôi chuyển đúng mật khẩu. Và nó nhận được mã phản hồi 401 khi tôi gửi sai mật khẩu. Tôi muốn bắt nó khi nó là 401. Nhưng không có chức năng nào hỗ trợ điều đó. Tôi đã thử tất cả các lỗi chức năng, thành công, hoàn thành và mã trạng thái. Yêu cầu của tôi là bắt lỗi 401. Không dừng lại. –