Niedawno poprosił innego (pokrewne) pytanie, które prowadzą do tego follow up pytania: Submitting data instead of a file for an input formStosując metody ajax jQuery do pobierania obrazów jako blob
Czytanie przez jQuery.ajax() dokumentacji (http://api.jquery.com/jQuery.ajax/), to wygląda na to, że lista akceptowanych typów danych nie zawiera obrazów.
Próbuję pobrać obraz przy użyciu jQuery.get (lub jQuery.ajax, jeśli muszę), zapisać ten obraz w Blob 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 (rozmiar w niedopasowaniu bajtów itp.).
Kod wykonać to w następujący sposób (to jest w coffeescript ale nie powinno być trudne do analizowania):
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ę odzyskać ten obraz jako blob zamiast?
Myślę, że trzeba zmienić typ odpowiedzi po stronie serwera. –
Próbuję pobrać obraz z dowolnego adresu URL, a nie z serwera, który jest moim właścicielem. – jabalsad
Spójrz na to http://stackoverflow.com/questions/4285042/can-jquery-ajax-load-image –