포착되지 않은 오류 : SECURITY_ERR : 쿠키를 설정하려고 할 때 DOM 예외 18


121

jQuery 플러그인을 사용하여 쿠키를 설정하려고하면 Chrome의 개발자 도구 창에 다음 오류가 표시됩니다 .

포착되지 않은 오류 : SECURITY_ERR : DOM 예외 18

이 오류는 무엇을 의미하며 어떻게 해결할 수 있습니까? jQuery 플러그인을 사용할 때 동일한 오류가 발생 합니다.


문제가 캔버스와 관련된 경우. 이 답이다 stackoverflow.com/questions/2390232/...
jose920405

답변:


151

file://쿠키를 설정할 수없는 URI 스킴을 통해 로컬 파일에서 이것을 사용하고있을 가능성이 높습니다 . 를 사용할 수 있도록 로컬 서버에 저장합니다 http://localhost.


26
또한 file : //에서로드 할 때 캔버스에서 getImageData ()를 사용하여 나에게 발생했습니다.
Timmmm 2011 년

6
좋은 호출은 다른 호스트에서로드 된 이미지에 대해 getImageData ()를 호출 할 때도 발생합니다. 파일을 동일한 도메인 / 프로토콜 / 등으로 이동합니다. 그것을 수정합니다.
mike clagg

28
전문가 팁 : Python이 설치되어있는 경우 python -m SimpleHTTPServer사이트의 루트 디렉토리를 입력 하고 localhost : 8000 에서 호스팅되는 위치를 찾으십시오 .
Thomas

5
Python 3의 경우 수행해야하는 것과 동일한 효과를 얻으려면python -m http.server 8000
Kat

2
iOS 개발자 인 경우 HTML을 UIWebView 컨트롤에 직접로드 한 후 localStorage를 사용하려고 할 때이 문제가 발생했음을 알고 싶을 것입니다. stackoverflow.com/questions/11371441/…
Felipe Sabino

18

로컬에서 HTML5를 개발하는 동안에도이 문제가 발생했습니다. 이미지 및 getImageData 함수에 문제가 있습니다. 마지막으로, --allow-file-access-from-file 명령 스위치로 크롬을 실행할 수 있다는 것을 발견했습니다.이 스위치는이 보호 보안을 제거합니다. 유일한 것은 브라우저를 덜 안전하게 만들고 플래그가 설정된 하나의 크롬 인스턴스와 플래그가없는 다른 하나의 크롬 인스턴스를 가질 수 없다는 것입니다.


4
--allow-file-access-from-files를 사용하는 경우 (이제는 복수형임을 알 수 있음) 이미 실행중인 다른 Chrome 인스턴스가없는 경우에만 스위치가 적용된다는 점을 기억해야합니다.
BlueMonkMN

11

이미지를 인라인 Base64 표현으로 대체하여이를 "수정"할 수도 있습니다.

img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
웹에 페이지를 게시하지 않고 로컬 컴퓨터에서만 사용할 때 유용합니다.


4
이 오류가 발생하지 않는 방식으로 캔버스의 base64 표현을 얻는 방법에 대한 아이디어가 있습니까?
devios1 2012

var canvas = document.createElement ( "canvas"); canvas.width = 128; canvas.height = 128; var ctx = canvas.getContext ( '2d'); ctx.fillRect (25,25,100,100); ctx.clearRect (45,45,60,60); ctx.strokeRect (50,50,50,50); return ctx.getImageData (0, 0, 128, 128);
Ray Hulha 2013 년

10

자바 스크립트와 같은 상황에 직면 . 안타깝게도 Chrome은 로컬 파일에 저장된 자바 스크립트 작업자에 대한 액세스를 허용하지 않습니다.

로컬 스토리지를 사용하여 아래의 해결 방법 중 하나 종류와 크롬을 실행하는 것입니다 --allow-file-access-from-files(와 s끝)하지만 크롬의 하나의 인스턴스 만이 나를 위해 너무 편리하지 않은, 허용됩니다. 이러한 이유로 저는 파일 액세스가 허용 된 Chrome Canary를 사용하고 있습니다.

Firefox의 BTW에는 그러한 문제가 없습니다.


한 번 이상 찬성 할 수 있으면 좋겠습니다. 귀하의 답변은 화면에 머리를 두드리는 시간을 절약했습니다! 많은 감사합니다 !!
Jaime

내 즐거움을 @Jaime)
Endre 시모에게


4

히스토리 API를 사용할 때이 문제가 발생했습니다.

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

로컬 서버 (localhost)를 사용하더라도 URL에 'http : //'를 추가하여 다음과 유사한 것을 만들 수 있습니다.

http://localhost...

3

--allow-file-access-from-filesChrome을 기본 브라우저로 사용하고 있었기 때문에 솔루션이 완전히 만족스럽지 않았고 제가 여는이 위반에 대해 정말 만족하지 않았습니다.

이제 플래그를 켜고 개발에 Canary (크롬 베타 버전)를 사용하고 있습니다. 그리고 내 진짜 블로깅을위한 단순한 크롬 버전 : 두 브라우저는 깃발을 공유하지 않는다!


1
호기심 당신의 사람들에게, 지금은 --allow-파일 액세스에서-파일 (s가 포함)입니다
쉐인 Reustle

2

권한을 얻기 전에 새로운 (지금까지 웹킷에만 해당) 알림 기능을 사용하는 경우에도이 오류를 수신 할 수 있습니다.

첫 실행 :

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

나중에 실행 :

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

요청 권한 기능은 사용자에 의해 발생한 이벤트에서 트리거되어야합니다. 그렇지 않으면 표시되지 않습니다.


1

ASP.NET MVC를 사용하여 원본과 다른 파일 이름을 가진 파일을 반환하는 오버로드로 FileResult를 반환 할 때 모바일 사파리에서 해당 오류가 발생했습니다. 그래서,

return File(returnFilePath, contentType, fileName);

모바일 사파리에서 오류가 발생합니다.

return File(returnFilePath, contentType);

하지 않을 것입니다.

내가하는 일이 좋은 생각이라고 생각한 이유도 기억 나지 않습니다. 영리 해 지려고 노력하는 것 같아요.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.