2015-10-09 23 views
7

Làm thế nào để tạo lại lỗiSafari XHR (AJAX) yêu cầu w/cross-domain redirect không

  1. Thực hiện yêu cầu AJAX đến một máy chủ sử dụng Safari
  2. Có phản ứng máy chủ w/302 đến một tên miền khác

Nếu một trong những điều kiện là không đáp ứng, nó hoạt động.

  1. Sử dụng trình duyệt khác, nó hoạt động.
  2. Để máy chủ chuyển hướng đến cùng một miền, nó hoạt động.

.

Load: function (in_url, in_cb, in_responseType) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open('GET', in_url, true); 
    xhr.onload = function() { 
    if (xhr.status === 200) { 
     in_cb(null, xhr.response); 
    } else { 
     in_cb(new Error('[Loader] Could not fetch from: '+in_url+', status: '+xhr.status)); 
    } 
    }; 
    xhr.onerror = function (error) { 
    in_cb(error); 
    }; 

    xhr.send(); 
} 

enter image description here enter image description here

+0

Đây là sự cố đã biết với Safari. Có vẻ như nó thực sự đang được làm việc trên gần đây như https://bugs.webkit.org/show_bug.cgi?id=112471. – itayad

+0

Tuy nhiên, hãy đảm bảo máy chủ của bạn hỗ trợ CORS –

Trả lời

1

bug này đã được cố định.
Safari 10.1 (WebKit 603.1.30) là phiên bản đầu tiên không bị ảnh hưởng.

+0

Cảm ơn bạn! Thật không may tôi đã hỏi từ lâu rồi tôi không còn có mã nằm xung quanh để kiểm tra. Nếu ai đó có thể xác nhận rằng nó đã được sửa, tôi sẽ đánh dấu phản hồi của bạn là chính xác – hrdwdmrbl

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