बिना त्रुटि के त्रुटि: SECURITY_ERR: जब मैं कुकी सेट करने का प्रयास करता हूं तो DOM अपवाद 18 होता है


121

जब मैं इस jQuery प्लगइन का उपयोग करके कुकी सेट करने का प्रयास करता हूं, तो मुझे Chrome के डेवलपर टूल विंडो में निम्न त्रुटि मिलती है :

बिना किसी त्रुटि के: SECURITY_ERR: DOM अपवाद 18

इस त्रुटि का क्या अर्थ है और मैं इसे कैसे ठीक कर सकता हूं? जब मैं इस jQuery प्लगइन का उपयोग करता हूं तो मुझे वही त्रुटि मिलती है ।


यदि आपकी समस्या कैनवास से संबंधित है। यह उत्तर है stackoverflow.com/questions/2390232/…
jose920405

जवाबों:


151

आप file://URI स्कीम के स्थानीय फ़ाइल पर इसका उपयोग करने की सबसे अधिक संभावना रखते हैं , जिसमें कुकीज़ सेट नहीं हो सकते। इसे स्थानीय सर्वर पर रखें ताकि आप उपयोग कर सकें http://localhost


26
फ़ाइल से लोड होने पर कैनवास पर getImageData () का उपयोग करके मेरे लिए भी ऐसा हुआ: //।
टिम्मम

6
किसी अन्य होस्ट से लोड की गई छवि के लिए getImageData () कॉल करने पर भी अच्छा कॉल होता है। फ़ाइल को उसी डोमेन / प्रोटोकॉल / आदि पर ले जाना। इसे ठीक करता है।
माइक क्लैग 22

28
प्रो टिप: यदि आपने पायथन स्थापित किया है, तो बस python -m SimpleHTTPServerअपनी साइट की रूट डायरेक्टरी में टाइप करें, और इसे स्थानीयहोस्ट: 8000 पर होस्ट करें
थॉमस

5
पायथन 3 के लिए, उसी प्रभाव को प्राप्त करने के लिए जिसे आपको करने की आवश्यकता हैpython -m http.server 8000
कैट

2
यदि आप एक iOS डेवलपर हैं, तो आपको यह जानने में रुचि हो सकती है कि मैंने HTMLWebView के नियंत्रण में सीधे HTML लोड करने के बाद लोकलस्टोरेज का उपयोग करने की कोशिश करते समय इस मुद्दे का भी अनुभव किया था। stackoverflow.com/questions/11371441/…
फेलिप सबिनो

18

एचटीएमएल 5 को स्थानीय स्तर पर विकसित करते हुए मेरे पास यह मुद्दा भी था। मैं छवियों और getImageData फ़ंक्शन के साथ समस्या थी। अंत में, मुझे पता चला कि क्रोम - theallow-file-access-from-file कमांड स्विच के साथ लॉन्च कर सकता है, जो इस सुरक्षा सुरक्षा से छुटकारा दिलाता है। केवल एक चीज यह है कि यह आपके ब्राउज़र को कम सुरक्षित बनाता है, और आपके पास एक झंडे के साथ और बिना दूसरे ध्वज के साथ क्रोम उदाहरण नहीं हो सकता है।


4
जब आप --allow-file-access-from-files (नोटिस यह अब बहुवचन है) का उपयोग करते हैं, तो आपको यह याद रखना होगा कि क्रोम केवल तभी चलता है जब क्रोम के अन्य इंस्टेंस पहले से ही नहीं चल रहे हों।
BlueMonkMN

11

आप इसकी इनलाइन Base64 प्रतिनिधित्व के साथ छवि को बदलकर इसे "ठीक" भी कर सकते हैं:

img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
उपयोगी, जब आप वेब पर पेज प्रकाशित करने का इरादा नहीं रखते हैं, बल्कि इसका उपयोग केवल स्थानीय मशीनों पर करते हैं।


4
किसी भी विचार कैसे एक कैनवास के base64 प्रतिनिधित्व इस तरह से प्राप्त करने के लिए कि यह इस त्रुटि को फेंक नहीं है?
devios1

var कैनवास = document.createElement ("कैनवास"); कैनवस.प्रवेशन = 128; कैनवस.हाइट = 128; var ctx = कैनवास.getContext ('2d'); ctx.fillRect (25,25,100,100); ctx.clearRect (45,45,60,60); ctx.strokeRect (50,50,50,50); वापसी ctx.getImageData (0, 0, 128, 128);
रे हुलहा

10

जावास्क्रिप्ट के साथ खेल रहे एक ही स्थिति का सामना करना पड़ा । दुर्भाग्य से क्रोम एक स्थानीय फ़ाइल में संग्रहीत जावास्क्रिप्ट कार्यकर्ताओं तक पहुँचने की अनुमति नहीं देता है।

स्थानीय संग्रहण का उपयोग करके नीचे दिए गए एक प्रकार का समाधान Chrome को --allow-file-access-from-files( sअंत में) चलाना है , लेकिन Chrome के केवल एक उदाहरण की अनुमति है, जो मेरे लिए बहुत सुविधाजनक नहीं है। इस कारण से मैं क्रोम कैनरी का उपयोग कर रहा हूं, जिसमें फ़ाइल की अनुमति है।

फ़ायरफ़ॉक्स में BTW ऐसा कोई मुद्दा नहीं है।


काश मैं एक से अधिक बार उत्थान कर पाता। आपके उत्तर ने मुझे स्क्रीन के खिलाफ अपना सिर पीटने के समय के टन बचा लिया !! बहुत बहुत शुक्रिया!!
Jaime

@ मेरी खुशी;)
एंड्रे सिमो

5

यदि आप डेटा URI योजना के साथ एक वेब कर्मचारी बनाने का प्रयास करते हैं, तो यह त्रुटि उत्पन्न होती है।

var w = new Worker('data:text/javascript;charset=utf-8,onmessage%20%3D%20function()%20%7B%20postMessage(%22pong%22)%3B%20%7D'); w.postMessage('ping');

यह मानक के अनुसार अनुमति नहीं है: http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#dom-worker


4

इतिहास एपीआई का उपयोग करते समय मेरे पास यह मुद्दा था।

window.history.pushState(null, null, URL);

एक स्थानीय सर्वर (लोकलहोस्ट) के साथ भी, आप अपने URL में 'http: //' जोड़ना चाहते हैं, ताकि आपके पास कुछ ऐसा हो:

http://localhost...

3

मैं --allow-file-access-from-filesसमाधान से पूरी तरह से खुश नहीं था , क्योंकि मैं अपने प्राथमिक ब्राउज़र के रूप में क्रोम का उपयोग कर रहा हूं, और इस उल्लंघन से वास्तव में खुश नहीं था जो मैं खोल रहा था।

अब मैं झंडे के साथ अपने विकास के लिए कैनरी (क्रोम बीटा संस्करण) का उपयोग कर रहा हूं। और मेरे वास्तविक ब्लॉगिंग के लिए मात्र क्रोम संस्करण: दो ब्राउज़र ध्वज साझा नहीं करते हैं!


1
आप में से उत्सुक लोगों के लिए, यह अब है - मुख्य-फाइल-एक्सेस-से-फाइल्स (एक एस के साथ)
शेन रीस्टेल

2

अनुमति मिलने से पहले नए (अभी तक केवल वेबकिट) अधिसूचना सुविधा का उपयोग करने पर यह त्रुटि भी प्राप्त कर सकता है।

प्रथम रन:

<!-- Get permission -->
<button onclick="webkitNotifications.requestPermission();">Enable Notifications</button>

बाद में चलाएं:

// Display Notification:
window.webkitNotifications.createNotification('image', 'Title', 'Body').show();

अनुरोध अनुमति फ़ंक्शंस को उपयोगकर्ता के कारण होने वाले ईवेंट से ट्रिगर करना होगा, अन्यथा यह प्रदर्शित नहीं होगा।


1

मैं ASP.NET MVC का उपयोग करते हुए मोबाइल सफारी में उस त्रुटि को प्राप्त कर रहा था, जो फाइल को एक अधिभार के साथ लौटाता है, जो मूल की तुलना में एक अलग फ़ाइल नाम के साथ एक फ़ाइल लौटाता है। इसलिए,

return File(returnFilePath, contentType, fileName);

जहाँ मोबाइल सफारी में त्रुटि दे सकता है, के रूप में

return File(returnFilePath, contentType);

नहीं होगा।

मुझे यह भी याद नहीं है कि मैंने क्यों सोचा कि मैं जो कर रहा था वह एक अच्छा विचार था। मैं चालाक होने की कोशिश कर रहा हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.