Niedawno zadałem inne (powiązane) pytanie, które doprowadziło do następującego pytania uzupełniającego: Przesyłanie danych zamiast pliku do formularza wejściowego
Czytając dokumentację jQuery.ajax () ( http://api.jquery.com/jQuery.ajax/ ) wydaje się, że lista akceptowanych typów danych nie zawiera obrazów.
Próbuję pobrać obraz za pomocą jQuery.get (lub jQuery.ajax, jeśli muszę), zapisać ten obraz w Blobie i przesłać go na inny serwer w żądaniu POST. Obecnie wygląda na to, że z powodu niezgodności typów danych moje obrazy są uszkodzone (niezgodność rozmiaru w bajtach itp.).
Kod do wykonania tego jest następujący (jest w skrypcie coffeescript, ale nie powinien być trudny do przeanalizowania):
handler = (data,status) ->
fd = new FormData
fd.append("file", new Blob([data], { "type" : "image/png" }))
jQuery.ajax {
url: target_url,
data: fd,
processData: false,
contentType: "multipart/form-data",
type: "POST",
complete: (xhr,status) ->
console.log xhr.status
console.log xhr.statusCode
console.log xhr.responseText
}
jQuery.get(image_source_url, null, handler)
Jak mogę zamiast tego pobrać ten obraz jako obiekt blob?