2013-05-01 24 views
27

SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3IE10/IE11 Abort bài Ajax Request Sau Clearing Cache với lỗi "Network Lỗi 0x2ef3"

Không có giải pháp có giá trị tại thời điểm này.

Update: Noticed on IE11 also.

Sau khi điều tra ngày càng nhiều, tôi đi kèm với kết quả này:

  1. Vấn đề là cụ thể cho ứng dụng của tôi, nó không xảy ra trên facebook.
  2. Sự cố không liên quan gì đến số yêu cầu tối đa trên mỗi máy chủ (tôi đã làm mẫu trang bị tràn máy chủ, IE10 có thể xử lý tối đa 8-10 lần cùng một lúc, bên trong ứng dụng của tôi mà tôi đã cố gắng thực hiện ajax yêu cầu serially, nó cũng không thành công).
  3. Sự cố này dành riêng cho yêu cầu POST.
  4. Sự cố không dành riêng cho thư viện JS được sử dụng (tôi đã thử XMLHttpRequest trực tiếp từ bảng điều khiển cũng không thành công).
  5. Lỗi xảy ra sau khi xhr.send(), xhr.readyState = 4 và xhr.onreadystatechange được kích hoạt.
  6. Lỗi không liên quan đến bất kỳ loại Nội dung, yêu cầu thích hợp hoặc cấu hình máy chủ nào. Nó chỉ là khách hàng, yêu cầu trang giả sẽ thất bại, với một XHR tối thiểu tối thiểu, chỉ cần xhr.open và xhr.send.
  7. Điều này xảy ra chủ yếu sau khi xóa bộ nhớ cache của trình duyệt.
  8. Thực hiện yêu cầu GET trước khi POST không khắc phục được sự cố này.

Câu hỏi của tôi là:

  1. Làm thế nào bộ nhớ cache của trình duyệt có thể ảnh hưởng đến yêu cầu ajax POST?
  2. Có cơ quan nào có liên hệ với nhà phát triển IE để cho chúng tôi biết lỗi này 'Lỗi mạng 0x2ef3' được ánh xạ tới không?

Hiện tại giải pháp tạm thời tôi đang thực hiện chỉ cần thử lại tối đa 3 lần nếu mã trạng thái HTTP bằng không. Nhưng nó rất xấu bởi vì ngay cả các yêu cầu tải lên đôi khi không thành công và nó trở nên chậm chạp đối với những yêu cầu thử lại, đôi khi nó sẽ mất thêm 100ms.

bước để tái sản xuất:

  1. Hãy chắc chắn rằng cáy hoặc proxy bị vô hiệu hóa.
  2. http://ie10.laiths.name/#!login
  3. Mở bảng điều khiển IE10, xóa bộ nhớ cache của trình duyệt.
  4. Hãy thử đăng nhập không hợp lệ này: [email protected]/random
  5. Sau 3-4 lần (xóa bộ nhớ cache/không hợp lệ), bạn sẽ thấy lỗi này: SCRIPT7002: XMLHttpRequest: Lỗi mạng 0x2ef3, Không thể hoàn tất hoạt động do lỗi 00002ef3.

IE Version tôi:

  • Win7 IE10 Version: 10.0.9200.16618
  • Version Cập nhật: 10.0.6 (KB2838727)

Để bây giờ tôi đang giải quyết nó bằng cách thử lại một tối đa là 3 lần nếu browser is IE10 & & Request is POST & & HTTP status code is 0.

Tôi sẽ đánh giá cao nếu ai đó có thể giúp tôi loại bỏ giải pháp xấu xí của tôi, bởi vì với giải pháp như vậy ngay cả khi yêu cầu đến máy chủ và trả về 0 Tôi cũng sẽ thử lại (tôi đã cố gắng tránh điều đó bằng cách đo thời gian giữa xhr.send và callback của nó nhưng nó không đáng tin cậy), nếu IE10 trong comptMode thì sao nếu IE11 có cùng một vấn đề, thêm vào hiệu suất đó, nó sẽ đưa vào máy của tôi ~ 170ms giữa mỗi lần thử lại.

+0

Tôi không thể tạo lại điều này trong IE10. Đã thử một cái gì đó như 10 lần. –

+0

Tôi đang thêm tính năng thử lại tự động, bạn có cố xóa bộ nhớ cache trước mỗi lần thử không? bạn đang sử dụng thanh công cụ nhà phát triển xóa nút bộ nhớ cache? –

+0

Có, tôi xóa bộ nhớ cache sau mỗi lần thử bằng cách nhấp vào Bộ nhớ cache (trong công cụ dành cho nhà phát triển) -> Xóa bộ nhớ cache của trình duyệt ... –

Trả lời

10

Điều này có thể xảy ra do sự cố chứng chỉ bảo mật. Nếu bạn xóa bộ nhớ cache, bạn mất một phần (nếu không phải tất cả) thông tin chứng chỉ.

Bạn có thể tìm thêm thông tin (và một workaround) trong http://www.jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/

Về cơ bản nó nói bạn phải làm một GET trước khi yêu cầu POST của bạn để cập nhật thông tin chứng chỉ.

+1

Cảm ơn bạn, trên thực tế tôi đã thấy URL này trước đây, nhưng tôi đã không thuyết phục với ý tưởng này, tuy nhiên tôi sẽ thử. Btw Tôi * không * sử dụng HTTPS –

+0

Bạn đang sử dụng máy chủ nào? –

+1

Tôi đang sử dụng Apache, nhưng nó hoàn toàn là phía khách hàng, yêu cầu không đi qua dây, thậm chí nó không đi ra ngoài trình duyệt. –

1

Tôi có vấn đề này, một yêu cầu AJAX bài viết đó quay trở lại một số JSON sẽ thất bại, cuối cùng trở về hủy bỏ, với:

SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3

lỗi trong giao diện điều khiển. Trên các trình duyệt khác (Chrome, Firefox, Safari), yêu cầu AJAX chính xác cũng không sao.

Điều tra thêm cho thấy phản hồi thiếu mã trạng thái - trong trường hợp này, nó phải là 500 lỗi nội bộ.

Điều này đã được tạo như một phần của ứng dụng web C# sử dụng ngăn xếp dịch vụ yêu cầu mã lỗi phải được đặt rõ ràng.

IE dường như để kết nối mở, cuối cùng lớp mạng đóng nó và nó 'hủy bỏ' yêu cầu; mặc dù nhận được nội dung và các tiêu đề khác.

Cập nhật ứng dụng web để trả lại mã trạng thái đã khắc phục sự cố một cách chính xác.

Có thể có vấn đề với cách IE xử lý các tiêu đề trong bài đăng.

Hy vọng điều này sẽ giúp ai đó!

+0

bạn có giải pháp cho việc này không? – Mousey

+1

Sửa phản hồi từ ứng dụng web đã sửa nó. –

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