1

我正在尝试使用 JQuery 将文件上传到 Flickr。我有一个使用表单插件提交的表单(如果我不使用 JQuery 则可以使用)。我的代码如下:

<html>

<head>
<title>Test Upload</title>
<script type="text/javascript" src="jquery-1.2.6.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('#myForm').bind('submit', function() {
        $(this).ajaxSubmit({
            dataType: 'xml',
            success:  processXml
        });
        return false; // <-- important!
    });
});

function processXml(responseXML) {
    var message = $('message', responseXML).text();
    document.getElementById('output').innerHTML = message;
}

</script>

</head>

<body>

<form id="myForm" method="post" action="http://api.flickr.com/services/upload/" enctype="multipart/form-data">
<input type="file" name="photo" id="photo"/>
<input type="text" name="api_key" id="api_key" value="..snip.."/>
<input type="text" name="auth_token" id="auth_token" value="..snip.."/>
<input type="text" name="api_sig" id="api_sig" value="..snip.."/>
<input type="submit" value="Upload"/>
</form>
<div id="output">AJAX response will replace this content.</div>
</body>

</html>

问题是我得到以下文本作为响应:

<rsp stat="fail">

    <err code="100" msg="Invalid API Key (Key not found)" />

</rsp>

即使文件上传没有问题。这意味着我的 div 没有更新,因为它没有运行成功功能。有人有想法么。

谢谢

4

5 回答 5

2

请参阅有关使用 AJAX 上传文件的其他线程:

如何异步上传文件?

我从未尝试过,但似乎您无法获得服务器响应(无论如何都不容易)

于 2008-10-08T14:45:15.120 回答
0

您将无法通过这种方式通过 AJAX 上传文件。

由于 JavaScript 的安全限制,纯 AJAX 文件上传系统是不可能的。

于 2008-09-29T12:51:02.300 回答
0

我看到您正在使用ajaxSubmit。那是jQuery 表单插件,对吧?问题可能与此有关吗?

您是否尝试过使用jQuery.post代替?

于 2008-09-29T12:59:37.287 回答
0

您可以做的是 - 在您的域上使用 proxy.php 文件。使用 ajax 将表单提交到 proxy.php。proxy.php 中的代码将使用 CURL 将表单提交到 flickr。您将在 php.net 或许多其他网站上获得 CURL 代码

于 2010-02-25T18:00:21.993 回答
0

ajax 不能跨域工作。您不能使用 ajax 从一个域向另一个域提交表单。

于 2010-02-25T17:56:33.140 回答