안녕하세요, XMLHttpRequest
을 사용하여 https://www.instagram.com/USERNAME으로 GET을 요청합니다. 내 목표는 사용자가 입력 한 Instagram 사용자 이름이 실제로 존재하는지 확인하는 것이고 클라이언트 측에서이를 확인할 수 있다면 좋을 것입니다.'Access-Control-Allow-Origin'헤더가없는 리소스에서 상태 코드를 가져 오는 중
예를 들어, GET 요청을 https://www.instagram.com/9gag으로 만들면 200이 다시 생깁니다. https://www.instagram.com/sakjafkhdsafd 그리고 당신은 404 등을 맞이합니다.
XMLHttpRequest cannot load https://www.instagram.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
좋아, 서버가 알아서해야 할 것 같아요 : 인스 타 그램이 CORS를 허용하지 않는 것처럼 나는 다음과 같은 오류가 XMLHttpRequest.send()
을 실행할 때 때문에
지금, 지금 ... ... 보인다 이 ...하지만! 내 네트워크 탭을 확인하면 실제로 요청이 만들어진 것을보고 예상 된 상태 코드와 함께 응답을 얻고 있습니다. 나는 또한 모든 HTML을 얻는다. 뭐야 ...?
브라우저 (내 경우에는 크롬)가 어떻게 캡처 할 수 있습니까?하지만 내 응용 프로그램은 캡처 할 수 없습니까?
의 요청에 따라 내 코드를 추가 :
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://www.instagram.com/" + username, false);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
// do something...
}
}
xhr.send()
편집 :
난 그냥 파이어 폭스에서이 테스트 나는 301 다시 얻을. 제 질문은 "네트워크 탭에서 예상되는 상태 코드를 얻기 위해 크롬이 수행하는 작업은 무엇입니까?"라고 생각합니다.
여기에서 테스트하십시오. 내 경우에는 모두가 301 http 상태 코드를 반환합니다. 여기에 xmlHttpRequest 코드를 게시 할 수 있습니까? –
@BrunoPeres - 질문에 추가되었습니다. 그냥 단순한 원시 xmlhttprequest, 동기식입니다.하지만 아무 것도 변경해서는 안된다고 생각합니다. – jgozal
크롬 콘솔에서 '9gag'대신 'username'을 사용하고 네트워크 탭에 20050을 다시 가져온 코드를 확인하려면 – jgozal