1

서버의 일부 상태를 게시하려면 HTML5 서버 전송 이벤트를 사용하고 있습니다. 상태를 추적하고 필요한 경우 사용자에게 알리기 위해 Chrome 확장 프로그램을 구현 중입니다. "SECURITY_ERR : DOM 예외 (18) catch되지 않은 오류"크롬 확장 사용 "EventSrouce"가 초기화 될 때 "SECURITY_ERR : DOM Exception 18"이 발생합니다.

var tracker = (function(url) { 
    var source = new EventSource(url); 
    var onMessage = function(e) { 
     console.log(e); 
    } 

    source.addEventListener('new', onMessage); 

    return { 
     source: source, 
     newMessage: onMessage 
    }; 
})('http://localhost:3000/dispatching'); 

그리고 내 확장 권한으로 서버의 URL을 추가 할 나는 EventSource 객체를 만들려고 해요 때

그러나 크롬에서 예외가 발생합니다 :

"permissions": [ 
    "http://localhost:3000/", 
    "tabs" 
] 

하지만 권한으로 문제가 해결되는 것은 아닙니다. 아이디어가 있으십니까?

+0

귀하의 페이지는 어떤 URL로 호스팅됩니까? 다른 포트입니까? –

+0

포트를 어떻게 다룰 지 모르겠지만 [match pattern] (http://code.google.com/chrome/extensions/match_patterns.html)은 'http : // localhost : 3000/*'이어야합니다. 일하기 위해서. ** 그러나 **, 나는이 권한이 심지어 컴퓨터에서 로컬로 실행되는 프로세스를 호출하는 데 필요하다고 생각하지 않습니다. ([이 질문] (http://stackoverflow.com/questions/9615089/how-adobe-shadow- chrome-extension-able-to-catch-dom-changes-any-relev)) 그래서 문제는 여러분의 코드와 관련이 있다고 생각합니다. 불행히도이 새로운 API에 대해서는 잘 모르기 때문에 실제로 도움이되지는 않습니다. – Alasdair

답변

1

http:// 프로토콜을 통해 서버에 접속하려고 시도한 file:// 프로토콜을 통해로드 된 HTML 파일에 발생하는 Same Origin Policy 문제와 같이 보입니다.

여기에 an article은 개발 환경에서 SOP를 우회하는 방법을 설명합니다.

제작을 시작하면 Google 크롬은 일반적으로 브라우저에 부과 된 일반적인 SOP 제한을 우회하는 특정 방법을 제공합니다. 이것은 당신이 언급 한 permissions JSON을 통해 있을지 모르겠지만, Chrome Extensions에 대해서는 충분히 익숙하지 않습니다.

아, 잠깐만, this article이 유용 할 수 있습니다.

관련 문제