有人可以建议如何使用普通的javascript向AJAX请求添加标头吗?我正在尝试将视频文件上传到服务器,并希望让它知道我发送的文件的文件大小和类型。 我找到了一些解决方案,但这涉及到jquERY,这不是我追求的。
例如:
Content-Length: 339108
Content-Type: video/mp4
我的AJAX请求:
var startUpload = function(){
var formdata = new FormData();
formdata.append('requestUpload', 'uploadTicket');
var xmlhttp = new XMLHttpRequest;
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
var response = xmlhttp.responseText;
if(response == '1'){
document.getElementById('UploadBox').innerHTML = '<div id="upWrap"><input type="file" id="vidInput"><button id="submitFile" onclick="">Upload Video<button></div>';
}
}
}
xmlhttp.open('POST', 'myFile.php');
xmlhttp.send(formdata);
}
答案 0 :(得分:0)
您可以使用XMLHttpRequest的setRequestHeader方法:
var xmlhttp = new XMLHttpRequest();
xmlhttp.setRequestHeader('Content-Type', 'video/mp4');
xmlhttp.setRequestHeader('Content-Length', '339108')
答案 1 :(得分:0)
您必须在致电open()
之后但在致电send()
之前调用它
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.open('GET', url, true);
xhr.setRequestHeader('accept', 'application/json, text/plain, */*');
并非可以设置所有标头,请参阅此 Forbidden_header_name
提示:
服务器端也应支持Cross-Origin Resource Sharing (CORS),例如Access-Control-Allow-Origin