L'erreur suivante s'affiche dans la fenêtre des outils de développement de Chrome lorsque j'essaie de définir un cookie à l'aide de this plugin jQuery:
Erreur non capturée: SECURITY_ERR: exception DOM 18
Que signifie cette erreur et comment puis-je la réparer? Je reçois la même erreur lorsque j'utilise this plugin jQuery.
Vous utiliserez probablement ceci dans un fichier local via le file://
Schéma d'URI, pour lequel les cookies ne peuvent pas être définis. Placez-le sur un serveur local pour pouvoir utiliser http://localhost
.
J'ai également eu ce problème lors du développement de HTML5 en local. J'ai eu des problèmes avec les images et la fonction getImageData. Enfin, j'ai découvert que l'on pouvait lancer chrome avec le commutateur de commande --allow-file-access-from-file, qui supprime cette sécurité de protection. La seule chose à faire est que cela rend votre navigateur moins sûr, et vous ne pouvez pas avoir une instance chrome avec le drapeau activé et une autre sans le drapeau).
Vous pouvez également "réparer" ceci en remplaçant l'image par sa représentation inline en Base64:
img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
Face à la même situation en jouant avec Javascript webworkers . Malheureusement, Chrome n'autorise pas l'accès aux travailleurs javascript stockés dans un fichier local.
Un type de solution de contournement ci-dessous à l'aide d'un stockage local consiste à exécuter Chrome avec --allow-file-access-from-files
(Avec s
à la fin), mais une seule instance de Chrome est autorisée, ce qui n'est pas trop pratique pour moi. Pour cette raison, j'utilise Chrome Canary, l'accès aux fichiers étant autorisé.
BTW dans Firefox il n'y a pas un tel problème.
Cette erreur s’affiche si vous essayez de créer un travailleur Web avec un schéma d’URI de données.
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');
Ce n'est pas autorisé selon la norme: http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#dom-worker
J'ai eu ce problème lors de l'utilisation de l'API d'historique.
window.history.pushState(null, null, URL);
Même avec un serveur local (localhost), vous souhaitez ajouter "http: //" à votre URL pour obtenir un résultat similaire à:
http://localhost...
Je n'étais pas complètement content du --allow-file-access-from-files
solution, parce que j'utilise Chrome comme navigateur principal et que je n'étais pas vraiment satisfait de cette violation que j'ouvrais.
Maintenant, j'utilise Canary (chrome bêta)) pour mon développement avec le drapeau activé. Et la simple Chrome pour mon vrai blogging: les deux navigateur ne partage pas le drapeau!
Il est également possible de recevoir cette erreur si vous utilisez la nouvelle fonctionnalité de notification (jusqu'à présent, uniquement pour le kit Web) avant d'obtenir une autorisation.
Première exécution:
<!-- Get permission -->
<button onclick="webkitNotifications.requestPermission();">Enable Notifications</button>
Plus tard couru:
// Display Notification:
window.webkitNotifications.createNotification('image', 'Title', 'Body').show();
Les fonctions d'autorisation de demande doivent être déclenchées à partir d'un événement provoqué par l'utilisateur, sinon il ne sera pas affiché.
J'avais eu cette erreur dans le safari mobile en utilisant ASP.NET MVC pour renvoyer un FileResult avec la surcharge qui renvoie un fichier avec un nom de fichier différent de celui d'origine. Alors,
return File(returnFilePath, contentType, fileName);
donnerait l'erreur dans le safari mobile, où comme
return File(returnFilePath, contentType);
ne serait pas.
Je ne me souviens même pas pourquoi je pensais que ce que je faisais était une bonne idée. J'essaie d'être intelligent.