XMLHttpRequest to read an external file

2019-02-24 19:16发布

问题:

I want to retrieve the data contained in a text file (from a given URL) through JavaScript (running on the client's browser).

So far, I've tried the following approach:

var xmlhttp, text;
xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', 'http://www.example.com/file.txt', false);
xmlhttp.send();
text = xmlhttp.responseText;

But it only works for Firefox. Does anyone have any suggestions to make this work in every browser?

Thanks

回答1:

IT works using xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); in IE older versions. Chrome, Firefox and all sensible browsers use xhr

Frankly, if you want cross browser compatibility, use jquery

its pretty simple there:

var text="";
$.get(url, function(data){text=data;//Do something more with the data here. data variable contains the response})


回答2:

var xhr = new XMLHttpRequest();
xhr.open('POST', '/uploadFile'); 
var form = new FormData();
form.append('file', fileInput.files[0]);
xhr.send(form);

It was previously impossible to upload binary data with XMLHttpRequest object, because it could not stand the use of FormData (which, anyway, did not exist at that time) object. However, since the arrival of the new object and the second version of XMLHttpRequest, this "feat" is now easily achievable

It's very simple, we just spent our File object to a FormData object and upload it