2013-10-26 9 views
0

this question에있는 사용자와 똑같은 문제가 있습니다. 나는이 코드를 사용하고 있습니다 :JavaScript : 보안 오류로 인해 이미지 데이터를 가져올 수 없습니다.

function imgData(img) { 
    var src_canvas = document.createElement('canvas'); 
    src_canvas.width = this.width; 
    src_canvas.height = this.height; 

    var src_ctx = src_canvas.getContext('2d'); 
    src_ctx.drawImage(img, 0, 0); 
    var src_data = src_ctx.getImageData(0, 0, this.width, this.height).data; 
} 

을 그리고 항상 크롬에서이 오류가 발생

Uncaught SecurityError: An attempt was made to break through the security policy of the user agent. Resources.js:27 
Unable to get image data from canvas because the canvas has been tainted by cross-origin data. Resources.js:27 

내가 자바 스크립트 매우 새로운 오전 문제가 여기에 무엇인지 전혀 모른다. 인터넷은 오늘도 손실로 보인다. 그래서 나는 지금 여기에있다. 내가 언급 한 질문에 대한 대답은 그가 외부 소스 (파일 시스템 외부)에서 이미지를 사용하려고하는 문제를 나타냅니다. 문제는, 나는 그렇지 않다는 것이다. 파일 시스템에서 Chrome에서 파일을 실행 중입니다. 이미지는 또한 내 파일 시스템에 있으며 보안 오류가 발생한다고 생각하지는 않습니다. 이견있는 사람? 나는 바보인가?

+0

이미지가 원격 소스에서 비롯 되었습니까? 이 함수를 호출하는 방법을 포함시킬 수 있습니까? –

+0

이 함수를 호출하는 코드를 게시 할 수 있습니까? 사용중인 이미지의 URL을 포함하십시오. –

답변

5

웹 서버가 아닌 파일 시스템에서 직접 HTML/JavaScript에 액세스하고 있습니까? 그렇다면 후자를 시도해보십시오. 대부분의 브라우저는 웹 서버 외부에서 데이터를 가져 오도록 요청하면 (심지어 자신의 파일 시스템에 있더라도) 도메인 간 보안 문제가 발생합니다.

+1

"** 나는 파일 시스템의 Chrome에서 파일을 실행 중입니다."** –

+1

실제로 그런 경우이고 웹 서버 뒤에서 실행하고 싶지 않거나 실행할 수 없으면 다음과 같이 명령 행에서 크롬을 사용하여 크로스 도메인 보안을 비활성화 할 수 있습니다. chromium-browser --disable - 웹 보안. 이 게시물을 통해 (http://stackoverflow.com/questions/3102819/chrome-disable-same-origin-policy) – colbydauph

+0

그 해결책이 작동합니다. 감사! 또한 문제없이이 종류의 테스트를 수행 할 수 있도록 로컬 웹 서버를 호스트/액세스하는 방법을 파악하는 방향으로 나를 안내 할 수 있습니까? 그것이 의미가 있다면 ... – CoderTheTyler

관련 문제