使用AJAX加载原始图像数据

时间:2009-07-02 00:03:04

标签: javascript ajax facebook xmlhttprequest

我正在尝试与网站进行一些Facebook集成,并且在facebook api上有一个特定的调用,即将图片发布到用户帐户。其中一个参数是原始图像数据。图像存储在Web服务器本地,我有一个URL。我打算使用javascript在客户端上加载图像,直到我知道我无法做到这一点。我正在尝试使用图像URL对服务器进行httpxml调用,并打算让它返回图像数据。此示例代码使用网址到csv文件,但它似乎不想读取图像文件内容。我尝试xmlhttp.responseText时遇到错误。我要使用此图像数据的api调用是:

http://wiki.developers.facebook.com/index.php/Photos.upload

function getFile(pURL,pFunc) {
        xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 
        if (xmlhttp) {
            eval('xmlhttp.onreadystatechange='+pFunc+';');
            xmlhttp.open('GET', pURL, false);
            xmlhttp.send();
        }
}

function makeList() {
    if (xmlhttp.readyState==4) { 
        if (xmlhttp.status==200) { 
            var tmpArr=xmlhttp.responseText;
            document.getElementById('theExample').innerHTML=tmpArr;
        }
    }
}

请原谅我对这个网络内容的可怕理解。我需要学习它,但在我坐下来学习所有这些好东西之前,我还需要做一些快速的工作。我已经在C#/ C ++世界中长期存在。

2 个答案:

答案 0 :(得分:1)

所以你正在写一个facebook应用程序,使用facebook api,并试图将你的应用程序中的图像上传到用户个人资料?

api需要一个带有mutli-part mime的HTTP帖子 - 想想那是什么让你失望。

您使用的是客户端库吗?如果是这样,我假设您正在使用:http://facebook.codeplex.com/

此PHP参考具有您需要的基础:http://www.ajaxlines.com/ajax/stuff/article/using_the_facebook_api_to_upload_photos.php

我在您的代码中看到的一个问题是,当您想要responseBody(二进制)时,您试图将图像从URL拉到responseText(字符串)。 http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx

答案 1 :(得分:1)

如果您知道服务器上图像的URL,为什么不创建图像元素?

var img = document.createElement("img");
img.src = url; // assuming you have the URL in a variable called "url"
document.getElementById("image_holder").appendChild(img);