2011-09-21 1 views
0

jQuery 또는 해당 URL에서 이미지를로드하는 방법을 사용하지 않고 자바 스크립트를 사용하여 URL에 연결할 수 있는지 확인하려고합니다. 그 URL의 상태 코드를 얻을 수 있다면 좋을 것입니다. 걱정할 필요가있는 것은 상태 코드가 200 인 것이기 때문입니다.jQuery를 사용하지 않고 Javascript/Ajax를 사용하여 원격 URL의 상태 코드를 얻는 방법?

XMLHttpRequest를 사용해 보았지만 크로스 도메인 호출을 지원하지 않습니다.

도와주세요.

감사합니다.

답변

1

server side language을 사용하여 서버 측 스크립트를 만들고이 스크립트에서 상태 코드를 반환하도록하십시오. 이 "프록시"스크립트는 URL을 요청하므로 상호 도메인 요청이 필요하지 않습니다. 파이썬 응답 코드 스크립트의 예를 들어

여기를 참조 : 도움이 What’s the best way to get an HTTP response code from a URL?

희망, 그것은 불가능합니다 -Sunjay03

+0

덕분에, Sunjay는 문제는 서버의 코드에 액세스 할 수없는 것입니다. 그것은 내게 "말 그대로"외부입니다. 예를 들어, URL은 무엇이든 될 수 있습니다 (심지어 http://www.google.com). 결론은 서버의 코드에 액세스 할 수 없다는 것입니다. – Sunny

+0

서버 코드에 액세스 할 필요가 없습니다. 프록시를 사용하는 나의 방법은 당신이 그것을 완전히 피할 수있게 해줍니다. –

2

는 XMLHttpRequest를하지 않고 자바 스크립트로 직접 상태 코드를 얻을 수 있습니다. Cross-Origin Resource Sharing을 사용할 수 있습니다 재생하고자하는

  1. 특정 클라이언트와 서버 : 지적,이 두 가지 가능한 크로스 도메인 접근 방식 (프록시 서버를 필요로하지 않는) 내가 알고있는이에 있습니다 만 같은 도메인하지만 일반적으로 과;
  2. flash-based "XHR" solutions도 있습니다. 아끼던 모든 경우 반면에

에서, 이미지가를로드 할 수 있다고 생각입니다 (모든 200을하지 않을 수있는!)는 이미지 요소를 사용하여이 문제를 알아 가능 onload 이벤트. 특정 시간 내에 onload 이벤트가 실행되지 않으면 요청 시간 초과 또는 실패 (4xx/5xx)로 결론 지을 수 있습니다. 그러나 302 등의 경우 false-positive를 반환합니다.

브라우저에서 실제로 이미지를로드하려고합니다. 더 영리한 이미지 중 일부는 숨겨진 이미지를로드하지 않습니다. 들었어.

해피 코딩.

<script src="http://www.google.com" onerror="alert('error')"></script> <!-- Is Fine --> 
<script src="http://www.notrealnotrealzz.com" onerror="alert('error')"></script> <!-- Alerts Error --> 

을 그리고 그것은 분명히 해킹, 그러나 희망이 도움이됩니다

2

나는 "크로스 브라우저가"이 얼마나 확실하지 않다.

보다 동적 버전 : 당신의 응답을

var el = document.createElement('script'); 
el.onerror = errorFunction; 
el.src = url; 
document.body.appendChild(el); 
관련 문제