2012-04-21 2 views
3

JavaScript를 사용하여 다른 도메인의 일반 텍스트 파일을 다운로드하고 구문 분석 할 수 있습니까?원격 서버에서 파일을로드하고 구문 분석 할 수 있습니까?

지금까지 fiddle이 있는데, 내가 잘못하고있는 것을 알아 냈습니다.

마크 업 :

<div id="clickme">Click me</div> 
    <div id="result">Result: </div> 

코드 :

$("#clickme").click(function() { 
    /* ################################### 
    NOTE: im on say example.com/test.html but trying 
    NOTE: to access different_domain_sample.com 
    */ 
    var req = new XMLHttpRequest(); 
    var sURL = "http://www.google.com/robots.txt"; 

    req.open("GET", sURL, true); 
    req.setRequestHeader("User-Agent", "blah/4.2"); 

    req.onreadystatechange = function() { 
    if (req.readyState == 4) { 
     $("#result").text("Result is: <pre>" + req.responseText + "</pre>"); 
    } 
    }; 
    req.send(null); 
}); 

이미 대답하지만, 이에 대한 자세한 정보는이 작업을 수행하는 세 가지 방법이 있습니다 여기 Cross-origin resource sharing

+2

JavaScript를 통해 도메인간에 요청을 보낼 수 없습니다. – Blender

+0

그리고 그것은 좋은 것입니다 :) –

+0

@Blender 자바의 애플릿과 같은 제한이 있습니까? 코드에 "서명"하거나 코드를 신뢰할 수 있는지 사용자에게 묻습니다. 따라서 도메인 전체의 파일에 액세스 할 수 있습니까? – lzdt

답변

3

입니다 :

  1. 비 탐색의 도움으로 r 기반 프록시가 사용자의 도메인에서 제공되어 사용자를 대신하여 데이터를 가져옵니다. 동일한 출처 정책을 우회 할 수있는 플러그인을 사용할 수도 있습니다.
  2. 동일한 출처 정책에 대해 JSONP 또는 이와 유사한 방식으로 해킹을 사용하십시오. JSONP를 지원하려면 웹 서버가 필요합니다.
  3. 십자가 출처 정책 해제 (확실히 하지 않는 것이 좋습니다;매우 위험) 브라우저의 크로스 사이트 스크립팅 방지라는 기능을 구현하기 때문에
+1

우화, 알았어 : http://en.wikipedia.org/wiki/Same_origin_policy#Workarounds 많이 고마워! – lzdt

4

그것입니다. 예를 들어 같은 서버의 php 파일에서 ajax 요청을 수행하고 curl을 사용하여 대상 페이지를 쿼리 할 수 ​​있습니다.

+0

내가 쓰는 것처럼. –