2013-03-01 1 views
0

아래 코드를 실행하려고합니다. IE 브라우저에서 제대로 작동하지만 다른 브라우저에서는 작동하지 않습니다.파일 읽기 아약스 호출 브라우저 호환성

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4 /jquery.min.js'></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 
$("#button1").click(function(){ 

    alert("1");  
     $.ajax({url:"file://///30.170.12.75/Shared/a.html" 
     ,success:function(result) {$("#div1").html(result);} 
     ,error: function(result) {alert("2");} 
     }); 
    }); 
}); 
<script> 

jquery api는 브라우저 호환성도 제공하지만 다른 브라우저에서는 작동하지 않습니다.

나는 미래에 내가 그들을 돌볼 것입니다 이유를 알려주십시오.

+0

당신이 점점 경고 ('2') 오류 (정말 file://하지 http:// 또는 다른 것들?이 될 수 있나요)? 그렇다면 경고를 보내고 오류를 알려주시겠습니까? –

+0

@Moniecorleone 2 대신 경고를 걸면 Object가 나타납니다. –

+0

@Boaz 답장을 보내 주셔서 감사합니다. 아약스 통화가 작동하지 않습니다. 다른 보우 워서에게 항상 경고 ("2")가 표시됩니다. –

답변

2

file:// 프로토콜을 사용하고 있으며 대부분의 브라우저는 소스 문서가 file:// 프로토콜을 사용하는 서버가 아닌 경우이 액세스를 허용하지 않습니다.

아약스 요청의 경우 대상 프로토콜이 file:// 프로토콜 인 경우 대부분의 브라우저가 요청을 차단합니다. 그러나 IE는 이와 같이 동작하지 않으며 요청이 끝나는 것을 허용합니다.

Chrome을 사용하는 경우 Chrome을 --allow-file-access-from-files 플래그로 시작하여 변경할 수 있습니다.

+0

이 " file : /////30.170.12.75/Shared/a.html "FF와 크롬이 제대로 작동하는 url. –

+2

URL에 직접 액세스해도 URL에 액세스하려는 JavaScript 기반의 보안 제한이 적용되지 않습니다. 대부분의 브라우저는 원본 문서가'file :'을 사용하여 제공 되더라도 다른 파일에 대한 액세스를 허용하지 않습니다. HTTP를 사용하십시오. – Quentin

+0

@Quentin하지만 IE에서 제대로 작동하는 이유는 무엇입니까? –