के साथ "बॉडी स्ट्रीम थक गया अनुरोध" मैं छवियों को अपलोड करने के लिए XMLHttpRequest POSTs का उपयोग करने के लिए आईओएस 6 प्राप्त करने का प्रयास करने पर काम कर रहा हूं। यह डेस्कटॉप और एंड्रॉइड वेब ब्राउज़र पर काम करता है, लेकिन आईओएस 6 के साथ मुझे पृष्ठ पर एक त्रुटि मिल रही है: "बॉडी स्ट्रीम थक गया अनुरोध करें"। (सफारी वेब इंस्पेक्टर के साथ आईओएस सिम्युलेटर का उपयोग करना)।आईओएस 6 (आईफोन/आईपैड) छवि अपलोड करें एनटीएलएम/विंडोज प्रमाणीकरण
function fileSelected() {
var file = document.getElementById('fileToUpload').files[0];
if (file) {
var fileSize = 0;
if (file.size > 1024 * 1024)
fileSize = (Math.round(file.size * 100/(1024 * 1024))/100).toString() + 'MB';
else
fileSize = (Math.round(file.size * 100/1024)/100).toString() + 'KB';
document.getElementById('fileName').innerHTML = 'Name: ' + file.name;
document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize;
document.getElementById('fileType').innerHTML = 'Type: ' + file.type;
}
}
function uploadFile() {
var fd = new FormData();
fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "/UploadHandler.ashx");
xhr.send(fd);
}
function uploadProgress(evt) {
if (evt.lengthComputable) {
var percentComplete = Math.round(evt.loaded * 100/evt.total);
document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
document.getElementById('prog').value = percentComplete;
}
else {
document.getElementById('progressNumber').innerHTML = 'unable to compute';
}
}
function uploadComplete(evt) {
/* This event is raised when the server send back a response */
alert(evt.target.responseText);
}
function uploadFailed(evt) {
alert("There was an error attempting to upload the file.");
}
function uploadCanceled(evt) {
alert("The upload has been canceled by the user or the browser dropped the connection.");
}
जब किसी भी अन्य ब्राउज़र पर यह कर, हैंडलर सही ढंग से वापस आती है और फ़ाइल अपलोड करता है:
यहाँ पेज के बुनियादी कोड है। हालांकि, आईओएस के साथ एशक्स पेज में त्रुटि "अनुरोध निकाय धारा समाप्त हो गई है"।
कोई भी विचार:
यहाँ निरीक्षक का एक स्क्रीनशॉट है?
अद्यतन: यह समस्या तब होती है जब आईआईएस में अनुप्रयोग के लिए एनटीएलएम/विंडोज प्रमाणीकरण सक्षम होता है। फॉर्म या अनाम प्रमाणीकरण के साथ, अपलोड ठीक काम करता है।
धन्यवाद,
जॉन
वास्तव में मैंने यह भी देखा है।आपका समाधान एक दिलचस्प है। उस समय के लिए (मैंने एप्पल को यह देखने के लिए एक बग सबमिट कर दिया है कि वे इसे ठीक कर सकते हैं), मेरे पास वास्तव में एक गैर-प्रमाणीकृत आईफ्रेम में फ़ाइल अपलोड होती है जो एएसपी.NET अस्थायी फ़ोल्डर में फ़ाइल अपलोड करती है और एक टोकन वापस भेजती है कि प्रमाणीकृत पृष्ठ तब temp फ़ोल्डर से फ़ाइल को पुनर्प्राप्त करते समय संदर्भ के लिए उपयोग करता है। –
क्या कोई कामकाज है? शायद डब्ल्यूसीएफ का उपयोग कर, या शायद किसी अन्य तकनीक का उपयोग कर? मैं शेयरपॉइंट पर हूं, और विंडोज़ ऑथ एक आवश्यकता है। – harsimranb