2010-05-17 2 views
3
function publish(text) { 
$('#helpdiv').prepend(text); 
} 

function get_help(topic) { 
    $.get(topic, publish); 
} 

<p>Hi. <a href="#" onclick="get_help('inline-help.html'); return false;">click here for more help.</a></p> 
<div id="helpdiv"></div> 

위의 HTML 및 javascript 덩어리를 위의 코드 조각 (상속)에 상속했습니다. 그것은/지역의 도움으로 사용될 예정입니다. 현재 온라인에서만 작동하며 정상적으로 작동합니다. 그러나 파일을 로컬로 복사 할 때 Internet Explorer에서 "Permission Denied"가 표시되고 "도움을 받으려면 여기를 클릭하십시오"는 Chrome에서 아무 것도하지 않습니다. 그것이해야 할 일은 inline-help.html에서 도움말 콘텐츠를로드하고 helpdiv div에 표시하는 것입니다. 이제는 같은 파일을 가져 와서 내 PC의 inetpub에 복사 한 다음 http://localhost/hello.html으로로드하면 키커가 완벽하게 작동합니다.로컬 파일에서 Javascript/jQuery를 사용하여 사용 권한이 거부되었습니다.

아마 "로컬"영역에서 사용자의 HD 파일을로드 할 수없는 보안 문제일까요? 하지만 실제로 어떤 일이 일어나고 있는지 확실하지 않으며이 문제를 더 깊이 이해하고 잠재적으로 해결 방법을 제시하려고합니다.

어떤 통찰력이라도 대단히 감사합니다.

+0

더 흥미로운 점은 WPF 래핑 된 Chromium 컨트롤을 사용하면 로컬 파일에서도 정상적으로 작동한다는 것입니다. 이것은 jquery가 아니라 브라우저 설정이라고 생각하게합니다. 나는 이것을 언급하고있다. http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/ – billb

답변

1

jquery의 "get"은 로컬 파일에서 작동하지 않는 xmlHttpRequest를 사용합니다. 로컬 데이터 (또는 다른 도메인의 데이터)를 비동기 적으로 가져올 수 있어야하는 경우 동적 스크립트 태그를 사용해야합니다. 그러나 이는 데이터 파일을 JSON 데이터로 재 형식화해야한다는 것을 의미합니다.

+0

왜 작동하지 않습니까? 이것은 의도적입니까? 다른 방법을 사용하여 해결 방법이 있습니까? 아니면 동적 스크립트 태그가 유일한 방법입니까? WPF 래핑 된 Chromium 컨트롤을 사용하면 로컬 파일에서도 정상적으로 작동합니다. 이것은 jquery가 아니라 브라우저 설정이라고 생각하게합니다. 나는 이것을 언급하고있다. http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/ – billb

+0

jquery 문제는 아니지만 작동 방식과 동일합니다. 나는 그것이 멍청하다는 것에 동의한다. 동적 스크립트 태그는 내가 아는 바로는 작동 할 수있는 유일한 방법입니다. 당신은 플래시로 무언가를 할 수 있을지도 모르지만 .... ick. – rob

+0

이 스레드에서 동료는 문제를 IE의 기대치 인 ActiveX 컨트롤과 jQuery에서 처리 할 수있는 문제에 집중시킵니다. https://social.msdn.microsoft.com/Forums/ie/en-US/9ae077e0-a7b9-433f- 835f-2643aa1a7e09/ie11previewcannot-read-local-files-with-ajax-method-of-jquery? forum = 웹 개발 – bgmCoder

0

브라우저에서 로컬로 (file:/// 액세스 방법을 사용하여) 자바 스크립트를 실행할 수 있다고 생각하지 않습니다. 하지만 http://localhost/에서로드하면 제대로 작동합니다.

웹 사이트에서 개발하거나 로컬 호스트 서버를 사용해야합니다.

+0

차이는 없습니다. – billb

+0

@billb - ... 당신은'http : // localhost /'에서 작동하지만 파일을 통해 로컬로로드 할 때 실패한다고 –

+0

사용자 의견에서 오해했습니다. 나는 당신이 c : \ filename.html과 대조적으로 file : ///을 통해 그것을 언급한다고 말한 것 같습니다. http : // localhost를 통해 참조하는 것은 최종 사용자에게 웹 서버가 설치되지 않기 때문에 옵션이 아닙니다. – billb

관련 문제