복붙노트

[JQUERY] /// 파일 : XMLHttpRequest를 원점 널 (null)이 파일에 대한 액세스 제어 - 허용 - 원산지를 사용할 수 없습니다 /// (서버를 사용)

JQUERY

/// 파일 : XMLHttpRequest를 원점 널 (null)이 파일에 대한 액세스 제어 - 허용 - 원산지를 사용할 수 없습니다 /// (서버를 사용)

해결법


  1. 1.브라우저 스위치를 통해 // 파일 : 로컬 웹 서버를 실행하는 옵션이 없습니다 인스턴스의 경우, 크롬 파일에 대한 액세스를 허용 할 수 있습니다. 일부 파고 후, 나는 오프닝 게시물에 브라우저 스위치를 언급이 토론을 발견했다. 당신의 크롬 인스턴스를 함께 실행

    브라우저 스위치를 통해 // 파일 : 로컬 웹 서버를 실행하는 옵션이 없습니다 인스턴스의 경우, 크롬 파일에 대한 액세스를 허용 할 수 있습니다. 일부 파고 후, 나는 오프닝 게시물에 브라우저 스위치를 언급이 토론을 발견했다. 당신의 크롬 인스턴스를 함께 실행

    chrome.exe --allow-file-access-from-files
    

    이 개발 환경에 대한 허용하지만, 조금 다른 수 있습니다. 당신은 확실히 모든 시간에이를 원하지 않는다. 이것은 여전히 ​​(년 1 월 2011 년으로) 개방 문제가 될 것으로 보인다.

    jQuery를해서 getJSON 문제 크롬에서 로컬 파일을 사용 :도 참조


  2. 2.기본적으로이 처리 할 수있는 유일한 방법은 웹 서버가 로컬 호스트에서 실행해야하고, 거기에서 그들을 제공하는 것입니다.

    기본적으로이 처리 할 수있는 유일한 방법은 웹 서버가 로컬 호스트에서 실행해야하고, 거기에서 그들을 제공하는 것입니다.

    "동일 기원 정책"의 목적을 위해 어떤 출처가없는 것처럼 요청 : 그것은 따라서 대부분의 브라우저 치료에 "// 파일"을 보일 액세스 컴퓨터에있는 파일에 아약스 요청을 허용하는 브라우저에 대한 안전하지 않습니다

    웹 서버를 시작하면 파일에서 실행되는 디렉토리에 cding으로 사소한로 할 수있다 :

    python -m SimpleHTTPServer
    

  3. 3.여기에 --allow-파일 액세스 - 파일에서 OSX를 들어, 설정 스위치를 크롬을 시작할 것 AppleScript로는 / 크롬 거기 DEVS :

    여기에 --allow-파일 액세스 - 파일에서 OSX를 들어, 설정 스위치를 크롬을 시작할 것 AppleScript로는 / 크롬 거기 DEVS :

    set chromePath to POSIX path of "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"    
    set switch to " --allow-file-access-from-files"
    do shell script (quoted form of chromePath) & switch & " > /dev/null 2>&1 &"
    

  4. 4.이 솔루션은 당신이 jQuery.getScript을 사용하여 로컬 스크립트를로드 할 수 있습니다 (). 이 전역 설정입니다하지만 당신은 또한 당 요청 기준으로 한 교차 도메인 옵션을 설정할 수 있습니다.

    이 솔루션은 당신이 jQuery.getScript을 사용하여 로컬 스크립트를로드 할 수 있습니다 (). 이 전역 설정입니다하지만 당신은 또한 당 요청 기준으로 한 교차 도메인 옵션을 설정할 수 있습니다.

    $.ajaxPrefilter( "json script", function( options ) {
      options.crossDomain = true;
    });
    

  5. 5.로컬 파일, 즉 열려면 자바 스크립트을 FileReader 기능을 사용하는 방법에 대해 무엇 :

    로컬 파일, 즉 열려면 자바 스크립트을 FileReader 기능을 사용하는 방법에 대해 무엇 :

    <input type="file" name="filename" id="filename">
    <script>
    $("#filename").change(function (e) {
      if (e.target.files != undefined) {
        var reader = new FileReader();
        reader.onload = function (e) {
            // Get all the contents in the file
            var data = e.target.result; 
            // other stuffss................            
        };
        reader.readAsText(e.target.files.item(0));
      }
    });
    </script>
    

    이제 파일 파일에 파일 버튼을 찾아 선택을 클릭 : /// C : /path/to/XSL%20Website/data/home.xml


  6. 6.너무 좋아 시작 크롬이 제한 우회 : 개방 -a "/ 응용 프로그램 / 구글 Chrome.app/Contents/MacOS/Google 크롬"--args --allow-파일 액세스에서-파일.

    너무 좋아 시작 크롬이 제한 우회 : 개방 -a "/ 응용 프로그램 / 구글 Chrome.app/Contents/MacOS/Google 크롬"--args --allow-파일 액세스에서-파일.

    조쉬 리의 코멘트에서 파생하지만 난 그렇게 (패러랠에서) 내 Windows 파티션에서 Google 크롬 개구부를 갖는 피하기 위해 구글 크롬에 대한 전체 경로를 지정해야했습니다.


  7. 7.난 그냥이 문제를 해결했다 방법은 전혀 사용하는 XMLHTTPRequest에 아니지만, 대신 별도의 자바 스크립트 파일에 필요한 데이터를 포함한다. (내 경우에는 내가 https://github.com/kripken/sql.js/와 함께 사용할 이진 SQLite는 BLOB 필요)

    난 그냥이 문제를 해결했다 방법은 전혀 사용하는 XMLHTTPRequest에 아니지만, 대신 별도의 자바 스크립트 파일에 필요한 데이터를 포함한다. (내 경우에는 내가 https://github.com/kripken/sql.js/와 함께 사용할 이진 SQLite는 BLOB 필요)

    내가 base64_data.js라는 파일 생성 (에 내가 필요로하는 데이터를 변환하는 데 사용 btoa ()과 삽입은

    나는 그것을 복사 할 수 있도록).

    var base64_data = "U1FMaXRlIGZvcm1hdCAzAAQA ...<snip lots of data> AhEHwA==";
    

    다음 일반 자바 스크립트와 같은 HTML의 데이터를 포함 :

    <div id="test"></div>
    
    <script src="base64_data.js"></script>
    <script>
        data = atob(base64_data);
        var sqldb = new SQL.Database(data);
        // Database test code from the sql.js project
        var test = sqldb.exec("SELECT * FROM Genre");
        document.getElementById("test").textContent = JSON.stringify(test);
    </script>
    

    나는 JSON, 어쩌면 XML을 읽는이를 수정하는 사소한 것 상상; 나는 독자들에게 운동으로 떠날거야;)


  8. 8.당신은 퍼팅 시도 할 수 있습니다 '를 액세스 제어 - - 원산지 허용': '*'response.writeHead에서을 ({[여기]}).

    당신은 퍼팅 시도 할 수 있습니다 '를 액세스 제어 - - 원산지 허용': '*'response.writeHead에서을 ({[여기]}).


  9. 9.'크롬 앱 웹 서버'를 사용합니다. (당신이 알고 말든 당신은 실제로 당신의 PC에 있습니다. 다만 마이크로 소프트 코타나에서 검색!). 을 열고 '파일을 선택'을 클릭 거기에 파일이있는 폴더를 선택합니다. 실제로 파일을 선택하지 마십시오. 파일은 다음 '폴더를 선택'버튼 아래에있는 링크 (들)를 클릭 폴더를 선택합니다.

    '크롬 앱 웹 서버'를 사용합니다. (당신이 알고 말든 당신은 실제로 당신의 PC에 있습니다. 다만 마이크로 소프트 코타나에서 검색!). 을 열고 '파일을 선택'을 클릭 거기에 파일이있는 폴더를 선택합니다. 실제로 파일을 선택하지 마십시오. 파일은 다음 '폴더를 선택'버튼 아래에있는 링크 (들)를 클릭 폴더를 선택합니다.

    이 파일에 당신을 데려 갈하지 않는 경우, 우리에게 파일의 이름을 추가합니다. 이 같은 :

       https://127.0.0.1:8887/fileName.txt
    

    크롬에 대한 웹 서버에 링크 : 나를 클릭

  10. from https://stackoverflow.com/questions/4208530/xmlhttprequest-origin-null-is-not-allowed-access-control-allow-origin-for-file by cc-by-sa and MIT license