Lỗi 500 luôn liên quan đến máy chủ. Các hiện tượng có thể chỉ xảy ra với một trình duyệt cụ thể, nhưng đó là máy chủ đang bị lỗi; yêu cầu đang được gửi đến máy chủ khiến mã phía máy chủ bị lỗi theo một cách nào đó.
Riêng lỗi 500 là quá chung chung; mà không biết thêm chi tiết về lỗi, luôn rất khó để chẩn đoán và thành thật mà nói, tôi sẽ không thể đưa ra câu trả lời chắc chắn cho bạn ở đây.
Cuối cùng, bạn nên loại trừ điều hiển nhiên và kiểm tra cài đặt trình duyệt của mình trong IE. Cụ thể, bất kỳ cài đặt nào có thể khiến nó không kết nối được với máy chủ. Ví dụ:đảm bảo rằng cookie đã được bật và đang hoạt động bình thường.
Nhưng điều đầu tiên bạn nên làm là thảo luận với nhà cung cấp hoặc nhà phát triển API vì họ sẽ có quyền truy cập vào nhật ký lỗi máy chủ và họ sẽ muốn biết về điều đó nếu mã của họ gặp lỗi 500.
Tuy nhiên, nếu bạn muốn điều tra cuối cùng, thực tế là nó dành riêng cho một trình duyệt là một manh mối. Nếu các trình duyệt khác đang hoạt động, thì điều này cho chúng ta biết rằng một trình duyệt này (IE11) đang gửi yêu cầu với điều gì đó về nó khác với các trình duyệt khác và đó là thứ gì đó đang kích hoạt mã phía máy chủ để Thất bại. Điều này mang lại cho chúng tôi điều gì đó để làm việc trong cuộc điều tra.
Vì vậy, điều đầu tiên cần làm là kiểm tra yêu cầu trong tất cả các trình duyệt. Sử dụng các công cụ dành cho nhà phát triển F12 trong Chrome, Firefox và IE và đi đến điểm mà bạn đã thực hiện cùng một lệnh gọi trong cả ba công cụ và nó hoạt động trong FF và Chrome nhưng không hoạt động trong IE11.
Trong các công cụ dành cho nhà phát triển, bây giờ bạn sẽ có thể kiểm tra chi tiết yêu cầu cho cả ba. So sánh chúng.
Bắt đầu bằng cách xem dữ liệu yêu cầu - tức là chuỗi truy vấn thực tế đã được gửi. Nếu có sự khác biệt, hãy xem xét liệu bất kỳ sự khác biệt nào trong số này có thể chịu trách nhiệm cho sai sót hay không. Một cái gì đó có thể nổi bật rõ ràng; ví dụ:nếu IE đã cắt bớt một biến hoặc một cái gì đó tương tự. Nếu điều này giải quyết được vấn đề thì thật tuyệt.
Nếu nó không giúp ích, thì bạn cần phải xem xét chi tiết hơn. Có thể có một số khác biệt nhưng chúng không giống như chúng nên phá vỡ bất cứ điều gì? Các công cụ dành cho nhà phát triển trình duyệt hiện đại cho phép bạn chỉnh sửa và gửi lại một yêu cầu, vì vậy hãy thử chỉnh sửa yêu cầu trong các công cụ dành cho nhà phát triển của Chrome hoặc Firefox và đặt các thông số giống với các thông số từ IE bị lỗi. Bây giờ hãy thử gửi lại yêu cầu đó. Nếu bạn may mắn, điều này sẽ khiến yêu cầu không thành công trong trình duyệt khác, điều này sẽ cho phép bạn hiển thị rằng một bộ dữ liệu cụ thể là vấn đề (chứ không phải một trình duyệt cụ thể). Bạn đã đề cập rằng đó là API của bên thứ ba, vì vậy, sau đó bạn sẽ cần thảo luận với nhà cung cấp API để tìm hiểu lý do tại sao truy vấn đó phá vỡ API của họ.
Nếu bạn vẫn chưa tìm thấy sự cố tại thời điểm này và bạn đang gửi các truy vấn giống hệt nhau trên cả hai trình duyệt và bạn đăng nhập với tư cách là cùng một người dùng, thì bước tiếp theo là xem các tiêu đề yêu cầu.
Có một tiêu đề yêu cầu chắc chắn sẽ khác:chuỗi Tác nhân Người dùng. Nhưng cũng có thể có những người khác. Một lần nữa, hãy thử gửi lại yêu cầu hoạt động trong Chrome nhưng với tiêu đề từ yêu cầu không thành công trong IE (bao gồm cả chuỗi UA). Yêu cầu hiện không thành công trong Chrome? Nếu vậy, hãy thu hẹp các tiêu đề khác nhau khiến nó không thành công.
Một lần nữa, nếu điều này cho phép bạn tìm thấy một tập hợp dữ liệu yêu cầu và tiêu đề cụ thể gây ra sự cố, thì bạn sẽ cần thảo luận với nhà cung cấp API.
Nếu tất cả những điều này không hữu ích, thì hãy thử xem các cookie. Bạn đã kiểm tra xem cookie có đang hoạt động hay không, vì vậy đây có vẻ là một khoảng thời gian dài, nhưng hãy so sánh lại cookie giữa các trình duyệt và xem liệu có điều gì khác biệt rõ ràng về chúng hay không.
Tôi hy vọng những điều trên là đủ để giúp bạn chẩn đoán sự cố.