XMLHttpRequest()
या --allow-file-access-from-files
झंडा क्रोमियम उदाहरण लांच पर सेट बिना <link>
तत्व डिफ़ॉल्ट रूप से सक्षम नहीं है का उपयोग कर क्रोमियम पर file:
प्रोटोकॉल को एक्सेस करना।
--allow-file-access-from-files
डिफ़ॉल्ट रूप से, फ़ाइल: // यूआरआई: // यूआरआई अन्य फ़ाइल नहीं पढ़ सकते हैं। यह उन डेवलपर्स के लिए ओवरराइड है जिन्हें परीक्षण के लिए पुराने व्यवहार की आवश्यकता है।
फिलहाल, कारण सुरक्षा नीति के लिए क्रोमियम --allow-file-access-from-files
बिना ajax के माध्यम से स्थानीय फ़ाइलें नहीं पढ़ सकता। लेकिन मैं वर्तमान में एक वेब अनुप्रयोग बनाने की आवश्यकता है जहां डेटाबेस xml-file (चरम मामले में, जेसन) है, index.html के साथ एक डीआईआर में स्थित है। यह समझा जाता है कि उपयोगकर्ता स्थानीय रूप से इस एप्लिकेशन को चला सकता है। क्या बिना किसी फ़ंक्शन में लपेटकर और जेएस एक्सटेंशन में परिवर्तन के बिना xml- (json-) फ़ाइल पढ़ने के लिए कामकाज हैं?
तो उपयोगकर्ता को पता है कि स्थानीय फ़ाइलों आवेदन के द्वारा प्रयोग की जाने वाली आप उपयोगकर्ता स्थानीय फाइल सिस्टम, प्रक्रिया फ़ाइल FileReader
का उपयोग करने से फाइल को अपलोड करने के लिए उपयोगकर्ता के लिए <input type="file">
तत्व का उपयोग कर सकते हैं, तो आवेदन के साथ आगे बढ़ें।
अन्य, उपयोगकर्ता को सलाह दें कि आवेदन के उपयोग के लिए --allow-file-access-from-files
ध्वज सेट के साथ क्रोमियम लॉन्च करने की आवश्यकता है, जो इस उद्देश्य के लिए लॉन्चर बनाकर किया जा सकता है, क्रोमियम के उदाहरण के लिए एक अलग उपयोगकर्ता डेटा निर्देशिका निर्दिष्ट करता है। लांचर हो सकता है, उदाहरण के लिए
/usr/bin/chromium-browser --user-data-dir="/home/user/.config/chromium-temp" --allow-file-access-from-files
भी देखें How do I make the Google Chrome flag “--allow-file-access-from-files” permanent?
उपरोक्त आदेश भी एक डेस्कटॉप लांचर बनाने के बिना terminal
$ /usr/bin/chromium-browser --user-data-dir="/home/user/.config/chromium-temp" --allow-file-access-from-files
से चलाया जा सकता है, जहां क्रोमियम का उदाहरण बंद होता है
$ rm -rf /home/user/.config/chromium-temp
क्रोमियम के उदाहरण के लिए कॉन्फ़िगरेशन फ़ोल्डर को हटाने के लिए।
एक बार ध्वज सेट है, उपयोगकर्ता rel="import"
विशेषता के साथ <link>
तत्व और स्थानीय फाइल करने के लिए href
की ओर इशारा करते और XMLHttpRequest
के अलावा अन्य विकल्प फ़ाइल पाने के लिए "application/xml"
को type
सेट, शामिल कर सकते हैं। प्रवेश XML
document
का उपयोग कर
const doc = document.querySelector("link[rel=import]").import;
Is there a way to know if a link/script is still pending or has it failed देखें।
एक अन्य विकल्प है, हालांकि अधिक शामिल, requestFileSystem
उपयोग करने के लिए LocalFileSystem
पर फ़ाइल को स्टोर करने के लिए किया जाएगा।
देखें
या बना सकते हैं या एक क्रोम ऐप में बदलाव करें और प्रयोग
chrome.fileSystem
Se ई GoogleChrome/chrome-app-samples/filesystem-access।
सबसे आसान तरीका सकारात्मक उपयोगकर्ता कार्रवाई द्वारा फ़ाइल अपलोड के साधन प्रदान करना होगा; अपलोड की गई फाइल को संसाधित करें, फिर एप्लिकेशन के साथ आगे बढ़ें।
const reader = new FileReader;
const parser = new DOMParser;
const startApp = function startApp(xml) {
return Promise.resolve(xml || doc)
};
const fileUpload = document.getElementById("fileupload");
const label = document.querySelector("label[for=fileupload]");
const handleAppStart = function handleStartApp(xml) {
console.log("xml document:", xml);
label.innerHTML = currentFileName + " successfully uploaded";
// do app stuff
}
const handleError = function handleError(err) {
console.error(err)
}
let doc;
let currentFileName;
reader.addEventListener("loadend", handleFileRead);
reader.addEventListener("error", handleError);
function handleFileRead(event) {
label.innerHTML = "";
currentFileName = "";
try {
doc = parser.parseFromString(reader.result, "application/xml");
fileUpload.value = "";
startApp(doc)
.then(function(data) {
handleAppStart(data)
})
.catch(handleError);
} catch (e) {
handleError(e);
}
}
function handleFileUpload(event) {
let file = fileUpload.files[0];
if (/xml/.test(file.type)) {
reader.readAsText(file);
currentFileName = file.name;
}
}
fileUpload.addEventListener("change", handleFileUpload)
<input type="file" name="fileupload" id="fileupload" accept=".xml" />
<label for="fileupload"></label>
यदि कोई कुकी इच्छित उपयोग के लिए पर्याप्त डेटा स्टोर नहीं कर सकती है, तो [स्थानीय संग्रहण] के बारे में कैसे (https://developer.mozilla.org/en -US/docs/वेब/एपीआई/खिड़की/localStorage)? –
वर्तमान में मैं अभी आपको क्या चाहिए, 'एक प्लगइन या कुछ और? के माध्यम से समारोह के बिना क्रोम में एक xml/json लोड की स्पष्ट नहीं कर रहा हूँ' कृपया थोड़ा और विस्तार से बताएं। –
http://stackoverflow.com/questions/7949752/cross-browser-javascript-xml-parsing –