2011-02-17 4 views
3

현재 탭보기의 스냅 샷을 가져와 제어하지 않는 웹 서비스 API에 업로드하는 Chrome 브라우저 확장 프로그램을 작성 중입니다. Chrome 확장 프로그램 라이브러리에는 스냅 샷을 가져 와서 데이터 URL의 데이터를 반환하는 기능 (chrome.tabs.captureVisibleTab. http://code.google.com/chrome/extensions/tabs.html 참조)이 있습니다. 나는 데이터를 업로드하는 방법에 관해서는 곤경에 처해있다.자바 스크립트에서 이진 데이터 크로스 도메인 게시하기

나는 멀티 파트 양식 요청을 작성하고 POST 요청에 ajax 요청을 사용하려고했습니다. 하지만 아약스는 UTF-8 인코딩을 주장하고 API는 8 비트 인코딩 바이너리를 고집합니다. http://malsup.com/jquery/form/처럼 파일 업 로더 플러그인을 사용하는 것이 좋겠다고 생각했지만 업 로더가 취할 양식으로 JS 변수의 데이터를 가져올 수 없습니다.

최소한 새로운 조사 경로에 대한 아이디어는 높이 평가 될 것입니다.

답변

2

이렇게 할 수 있다고 밝혀졌습니다.

크롬에 XMLHTTPRequest를 통해 blob을 보내는 방법이 있습니다.

http://code.google.com/p/chromium/issues/detail?id=35705#c34

XMLHttpRequest.prototype.sendAsBinary = function(datastr,contentType) { 
    var bb = new BlobBuilder(); 
    var len = datastr.length; 
    var data = new Uint8Array(len); 
    for (var i=0; i<len; i++) { 
      data[i] = datastr.charCodeAt(i); 
    } 
    bb.append(data.buffer); 
    this.send(bb.getBlob(contentType)); 
} 
: 여기

은 크롬 이슈 트래커에서 예제 코드에 대한 링크입니다
관련 문제