2012-09-17 2 views
0

파일을 다운로드하려고하기 전에 파일의 존재 여부를 확인하려고합니다. 파일은 ClickOnce 응용 프로그램입니다.jQuery를 사용하여 파일 (ClickOnce)이 있는지 확인하십시오.

나는 다음 코드를 이미 시도했지만, URL이 다른 서버와 도메인에 있기 때문에 작동하지 않습니다.

$.ajax({ 
    url: 'http://www.example.com/somefile.ext', 
    type: 'HEAD', 
    error: function() 
    { 
     //File does not exist 
    }, 
    success: function() 
    { 
     // File exists 
    } 
}); 

다른 해결책이 있습니까, 아니면이 방법을 사용할 수있는 방법이 있습니까?

+0

대신 IO 시스템과 통신 할 수있는 서버의 메소드를 호출하십시오. – asawyer

답변

0

예, URL이 다른 서버에있는 경우에는 작동하지 않습니다. 이 기능을 사용하려면 URL을 다운로드 한 서버를 제어해야합니다. 그렇다면 Access-Control-Allow-Origin 헤더를 JavaScript가로드 된 서버의 이름으로 설정해야합니다.

자세한 내용은 스택 오버플로 질문 jQuery AJAX cross domain을 참조하십시오.

0

쉽게 도메인 간 통화를 할 수는 없습니다. (CORS). 서버에서 파일의 존재 여부를 확인하고 그에 따른 결과를 반환하는 스크립트를 호출하는 것이 더 안전하고 안전합니다.

+0

문제는, 어떤 서버인지 모르겠다. ... – Mystogan

+0

@drbaltar 나는 너를 이해하지 못한다. 서버 이름을 모르는 경우 어떻게하면 처음부터 아약스 요청을하고 싶니? – Christoph

0

다른 사람이 말한 것 외에, 오류 기능에 대한 errorThrown 인수를 "찾을 수 없음"으로 확인해야합니다. 그렇지 않으면 실제로 다른 오류가 발생했을 때 파일이 존재하지 않는다고 가정 할 수 있습니다.

HTTP 오류가 발생하면 errorThrown은 HTTP 상태의 텍스트 부분 (예 : "찾을 수 없음"또는 "내부 서버 오류")을받습니다.

관련 문제