javascript - خطأ غير مصرفي:SECURITY_ERR:DOM استثناء 18 عندما أحاول تعيين ملف تعريف ارتباط




jquery html domexception (9)

يمكن للمرء أيضًا تلقي هذا الخطأ في حالة استخدام ميزة الإشعارات الجديدة (حتى الآن على webkit فقط) قبل الحصول على إذن.

الجولة الأولى:

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

في وقت لاحق المدى:

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

يجب تشغيل وظائف أذونات الطلب من حدث تسبب فيه المستخدم ، وإلا فلن يتم عرضه.

أتلقى الخطأ التالي في نافذة أدوات مطور Chrome عندما أحاول تعيين ملف تعريف ارتباط باستخدام this المكون الإضافي jQuery:

خطأ غير مصرفي: SECURITY_ERR: DOM Exception 18

ماذا يعني هذا الخطأ وكيف يمكنني إصلاحه؟ أحصل على نفس الخطأ عند استخدام this المكون الإضافي jQuery.


تواجه نفس الوضع يلعب مع webworkers جافا سكريبت. للأسف ، لا يسمح Chrome بالوصول إلى العاملين في جافا سكريبت المخزنة في ملف محلي.

يتمثل أحد أنواع الحلول البديلة أدناه باستخدام وحدة تخزين محلية في تشغيل Chrome مع --allow-file-access-from-files (مع وجود s في النهاية) ، ولكن يتم السماح بمثيل واحد فقط من Chrome ، وهو أمر غير مناسب لي. ولهذا السبب أستخدم Chrome Canary ، مع السماح بالدخول إلى الملفات.

راجع للشغل في فايرفوكس لا يوجد مثل هذه القضية.


أنت على الأرجح تستخدم هذا في ملف محلي عبر file:// URI system ، الذي لا يمكن تعيين ملفات تعريف الارتباط عليه. وضعها على خادم محلي حتى تتمكن من استخدام http://localhost .



كنت أتلقى هذا الخطأ في رحلات السفاري المتنقلة عند استخدام ASP.NET MVC لإرجاع FileResult مع التحميل الزائد الذي يقوم بإرجاع ملف باسم ملف مختلف عن الأصل. وبالتالي،

return File(returnFilePath, contentType, fileName);

يعطي الخطأ في رحلات السفاري المحمول ، حيث

return File(returnFilePath, contentType);

لن.

لا أتذكر حتى لماذا اعتقدت أن ما أفعله كان فكرة جيدة. تحاول أن أكون ذكية أعتقد.


واجهت هذه المشكلة عند استخدام واجهة برمجة تطبيقات السجل.

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

حتى مع وجود خادم محلي (localhost) ، فأنت تريد إضافة "http: //" إلى عنوان URL الخاص بك بحيث يكون لديك شيء مشابه لـ:

http://localhost...

كما أتيحت لي هذه المشكلة أثناء التطوير على HTML5 محليًا. كان لدي مشاكل مع الصور ووظيفة getImageData. وأخيرًا ، اكتشفت أن بإمكان أحد تشغيل chrome باستخدام مفتاح الأمر - file-access-access-file-file ، الذي يتخلص من أمان الحماية هذا. الشيء الوحيد هو أنه يجعل المتصفح الخاص بك أقل أمانًا ، ولا يمكن أن يكون لديك مثيل واحد من الكروم مع العلم على آخر دون العلم.


يمكنك أيضًا "إصلاح" هذا عن طريق استبدال الصورة بتمثيل Base64 المضمن:

img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
مفيد ، عندما لا تنوي نشر الصفحة على الويب ، بل استخدمها على الأجهزة المحلية فقط.


هذا يعمل بالنسبة لي على webpack.config.js

    new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'window.jQuery': 'jquery'
    }),

في javascript آخر أو إلى HTML إضافة:

global.jQuery = require('jquery');




javascript jquery html domexception