2013-06-10 28 views
5

Tôi có một CORS đơn giản AJAX cuộc gọi từ bên trong AngularJS ứng dụng với thành công callback:

$http({method:'POST',url:"http://0.0.0.0:4567/authenticate", 
params: {Lusername:scope.Lusername,Lpassword:scope.Lpassword}}) 
.success(function(){alert("Success")}) 

Khi được sử dụng trong Safari nó hoạt động tốt: lợi nhuận kỳ vọng đối tượng JSON và chương trình hộp cảnh báo. Tuy nhiên, trong Firefox, mặc dù đối tượng JSON được trả lại đúng cách nhưng hàm callback thành công không được kích hoạt.

Bất kỳ ý tưởng nào tại sao?

+0

Có bạn một jsFiddle mà có thể tạo lại vấn đề? Nhân tiện, tôi biết đó chỉ là ví dụ, nhưng hãy suy nghĩ để sử dụng $ window.alert() thay vì chỉ alert() (trong đó [$ window] (http://docs.angularjs.org/api/ng.$ cửa sổ) là một dịch vụ mà bạn tiêm). – Blackhole

+0

Khả năng của CORS. Kiểm tra điều đó. –

Trả lời

1

Đảm bảo bạn xử lý yêu cầu OPTIONS trong máy chủ. Nếu nó trả về 404 thì Firefox sẽ không gọi yêu cầu tiếp theo (trong trường hợp của bạn là POST được đề cập ở trên).

+0

Nếu tôi không có quyền truy cập vào các tùy chọn máy chủ :) – kwicher

+0

CORS cần được thiết lập trên máy chủ. – Pablo

0

Hãy thử điều này với phiên bản cuối cùng của AngularJS:

$http.post("http://0.0.0.0:4567/authenticate", { 
    Lusername: $scope.Lusername, 
    Lpassword: $scope.Lpassword 
}).success(function(data, status, headers, config) { 
    alert("Success"); 
}); 
+0

Điều này không giải thích được vấn đề hoặc giúp đỡ bất kỳ ai khác có thể có vấn đề tương tự trong tương lai. – DrCord

Các vấn đề liên quan