相关疑难解决方法(0)

XMLHttpRequest:使用XML和图像作为有效负载的多部分/相关POST

我正在尝试从Chrome扩展程序中将图像(使用元数据)发布到Picasa Webalbums.请注意,正如我在此处所述,Content-Type image/xyz的常规帖子有效.但是,我希望包含描述/关键字,协议规范描述了带有XML和数据部分的多部分/相关格式.

我通过HTML5 FileReader和用户文件输入获取数据.我使用检索二进制字符串

FileReader.readAsBinaryString(file);
Run Code Online (Sandbox Code Playgroud)

一旦FileReader加载了字符串,假设这是我的回调代码:

function upload_to_album(binaryString, filetype, albumid) {

    var method = 'POST';
    var url = 'http://picasaweb.google.com/data/feed/api/user/default/albumid/' + albumid;
    var request = gen_multipart('Title', 'Description', binaryString, filetype);
    var xhr = new XMLHttpRequest();
    xhr.open(method, url, true);
    xhr.setRequestHeader("GData-Version", '3.0');
    xhr.setRequestHeader("Content-Type",  'multipart/related; boundary="END_OF_PART"');
    xhr.setRequestHeader("MIME-version", "1.0");
    // Add OAuth Token
    xhr.setRequestHeader("Authorization", oauth.getAuthorizationHeader(url, method, ''));
    xhr.onreadystatechange = function(data) {
        if (xhr.readyState == 4) {
            // .. handle response
        }
    };
    xhr.send(request);
}   
Run Code Online (Sandbox Code Playgroud)

gen_multipart函数只是从输入值和XML模板生成多部分,并生成与规范完全相同的输出(除了..binary图像数据..),但为了完整起见,这里是:

function gen_multipart(title, …
Run Code Online (Sandbox Code Playgroud)

javascript picasa xmlhttprequest google-chrome-extension

12
推荐指数
1
解决办法
1万
查看次数

如何在$ .ajax中覆盖jQuery对XMLHttpRequest的使用?

我需要打开XMLHttp连接(即)之前addEventListener侦听progress事件,但该方法返回已打开的xhr实例.如何覆盖它以正确添加侦听器?xhr.open()beforeSend

(注意:您需要在请求上调用open()之前添加事件侦听器.否则,不会触发progress事件.)

ajax jquery

9
推荐指数
1
解决办法
6837
查看次数

如何使用html2canvas上传截图?

使用html2canvas如何将屏幕截图保存到对象?我一直在探索演示,并看到生成屏幕截图的函数生成如下:

$(window).ready(function() {
  ('body').html2canvas();       
});
Run Code Online (Sandbox Code Playgroud)

我尝试过的是

$(window).ready(function() {
  canvasRecord = $('body').html2canvas(); 
  dataURL = canvasRecord.toDataURL("image/png");
  dataURL = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
  upload(dataURL);

});
Run Code Online (Sandbox Code Playgroud)

然后,我将其传递给我的upload()函数.我遇到的问题是,我无法弄清楚在html2canvas()库中制作屏幕截图的位置或者什么函数返回它.我试着转换使用Canvas对象从SO答案(虽然我不能肯定我需要做到这一点).


我只问了一个问题,关于如何上传文件到imgur,有答案(尤其是@ bebraw的)帮助我明白我需要做的.

upload()函数来自Imgur示例api帮助:

function upload(file) {
   // file is from a <input> tag or from Drag'n Drop
   // Is the file an image?
   if (!file || !file.type.match(/image.*/)) return;

   // It is!
   // Let's build a FormData object
   var fd = new FormData();
   fd.append("image", file); // …
Run Code Online (Sandbox Code Playgroud)

javascript ajax upload screenshot html2canvas

9
推荐指数
1
解决办法
2万
查看次数

如何在jQuery 1.5中获取纯XMLHTTPRequest对象?

我的代码在jquery 1.4中工作正常,我尝试将其升级到1.5.但是这部分代码停止工作 - 它的标准beforeSend处理程序

beforeSend: function (xhr, options) {
//
__forced_abort = false;

//
xhr.upload.addEventListener('progress', on_progress, false);
xhr.upload.addEventListener('load', on_loaded, false);
xhr.addEventListener('abort', on_abort, false);
....
Run Code Online (Sandbox Code Playgroud)

我知道在1.5还没有真正的xhr - 只是jqXHR高级抽象,似乎是jqXHR没有上传属性.

问题:如何在jQuery 1.5中获得纯(旧)xhr对象?

jquery xmlhttprequest jquery-1.5

6
推荐指数
2
解决办法
6260
查看次数