2012-03-27 2 views
0

나는 성공적으로 아약스를 통해베이스 캠프의 XML 파일에 요청했지만 그것은 (구글 크롬)에서 오류가 발생합니다 :문제 "catch되지 않은 구문 에러 : 예기치 않은 토큰 <"

자원이 기타로 해석 되었으나 MIME 유형으로 전송 정의되지 않았습니다. 잡히지 않는 SyntaxError : 예기치 않은 토큰 <

파이어 폭스는 나에게도 오류가 발생하지만 완전히 다른 것이있다. XML 파일을 수정할 수 없으며 XML 파일 구조가 정확합니다. 나는 시도하고 찾았지만 잘못된 것을 발견 할 수있다. 어떤 도움을 주시면 감사하겠습니다.

다음은 jQuery 코드입니다 :

$(document).ready(function() { 
    $.ajaxSetup({accepts:'text/xml',cache:false}); 
    $.ajax({ 
      type: 'GET', 
      dataType: 'jsonp', 
      contentType: 'text/xml', 
      mimeType: 'text/xml', 
      crossDomain: true, 
      url: url, 
      beforeSend: function(xhr) { 
        var bytes = Crypto.charenc.Binary.stringToBytes(username+":"+password); 
        var base64 = Crypto.util.bytesToBase64(bytes); 
        xhr.overrideMimeType("text/xml;charset=UTF-8"); 
        xhr.setRequestHeader("Authorization", "Basic " + base64); 
      }, 
      complete: function(xhr, status) { 
        if (status === 'error' || !xhr.responseText) { 
         $('.result').html('<p><strong>Error:</strong> ' + status + "</p><p><strong>Response Text</strong>:<br /><pre>"+xhr.responseText+"</pre></p>"); 
        } else { 
         var data = xhr.responseText; 
         $('.result').html("<pre>"+data+"</pre>"); 
        } 
      } 
      }); 
    }); 
+0

비밀번호를 묻습니다. – Niko

답변

1

일반적으로, 문제는 JSONP를 지원하지 않는 요청 된 자원, 따라서 대신 스크립트의 XML 파일을 반환합니다. JSONP를 ajax 요청으로 지정하면이 함수는 데이터를 javascript로 래핑합니다. 그렇지 않으면 작동하지 않습니다.

물론 JSONP없이 XML 파일을 직접 요청할 수는 있습니다. 스크립트 이외의 리소스에 대한 도메인 간 액세스가 브라우저에서 보안 문제로 허용되지 않기 때문입니다.

+0

고마워요! JSONP로 XML을 요청할 수있는 방법이 있습니까? – elin15

+0

내가 말했듯이, 자바 스크립트 이외의 도메인 간 리소스를 직접 요청할 수있는 방법은 없습니다. 리소스 제공자 (여기 basecamp)가 XML 객체를 자바 스크립트 객체로 래핑 할 JSONP를 지원한다면, 개체를 추출하고 XML 콘텐츠를 추출합니다. 또는 페이지와 동일한 도메인에서 리소스를 요청할 수있는 프록시를 설정 한 다음 문제없이 xml을 직접 요청할 수 있습니다. –