2016-02-22 29 views
7

Tôi gặp sự cố khi sử dụng cùng nhau Cordova và tìm nạp API. Tôi đang thực hiện đoạn mã sauAPI tìm nạp và Cordova

fetch(BASE_URL + '/auth/login', { 
    method: 'post', 
    credentials: 'include', 
    headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/x-www-form-urlencoded' 
    }, 
    body: transformRequest({username: email, password: password}) 
}).then(response => { 
     console.log(response.headers.get('X-AuthToken')) 
}); 

Khi mã được thực hiện trong trình duyệt tiêu đề 'X-authToken' được lấy ra một cách chính xác và lưu lại. Khi tôi chạy cùng mã khi được đóng gói trong ứng dụng Cordova, tiêu đề 'X-AuthToken' là rỗng. Hơn nữa, điều lạ lùng là tôi có thể nhìn thấy hoàn toàn bộ tiêu đề khi kiểm tra phía máy chủ phản hồi và khi ngửi trên mạng vì vậy tôi hoàn toàn chắc chắn tiêu đề có (chỉ đơn giản là nó không được API tìm nạp trả lại); trên thực tế khi sử dụng XMLHttpRqeuest tương đương tiêu đề được thiết lập một cách chính xác:

var xhttp = new XMLHttpRequest(); 
xhttp.open("POST", BASE_URL + /api/auth/login", true); 
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhttp.send("username=username&password=password"); 
xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     console.log (xhttp.getResponseHeader('X-AuthToken')); 
    } 
} 

Đó là giá trị tín hiệu rằng khi tôi cố gắng để đổ tiêu đề phổ biến khác như pragma, bộ nhớ cache kiểm soát, ... họ đang đăng nhập một cách chính xác. Các đường nối giống như API tìm nạp đang lọc tiêu đề và xóa các tiêu đề không chuẩn. Có ai khác đang gặp phải vấn đề tương tự không? Tui bỏ lỡ điều gì vậy?

+1

api tìm nạp không hỗ trợ tốt trên các trình duyệt di động. http://caniuse.com/#feat=fetch – albanx

+1

@pinturic android và ios cordova dự án đều sử dụng webkit. API tìm nạp chưa được hỗ trợ 100% trong webkit. xem câu trả lời của tôi dưới đây –

Trả lời

1

Câu hỏi đặt độc đáo, bạn đang phát triển trên các cạnh cắt. Tôi sẽ gắn bó với XMLHTTPRequest ngay bây giờ. Tìm nạp api không được triển khai đúng cách trong webkit. Xem webkit bugzilla bug 151937

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