JQuery Flickr文件上传不起作用

Posted

技术标签:

【中文标题】JQuery Flickr文件上传不起作用【英文标题】:JQuery Flickr file upload not working 【发布时间】:2010-09-13 23:49:33 【问题描述】:

我正在尝试使用 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 没有更新,因为它没有运行成功功能。任何人都有任何想法。

谢谢

【问题讨论】:

我们可以澄清一下吗?您说从未调用过成功函数,但您还说您正在收到响应文本。如果不通过成功调用,您如何获得响应文本? 【参考方案1】:

查看其他关于使用 AJAX 上传文件的主题:

How can I upload files asynchronously?

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

【讨论】:

【参考方案2】:

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

由于 JavaScript 的安全限制,无法实现纯 AJAX 文件上传系统。

【讨论】:

【参考方案3】:

我看到您正在使用 ajaxSubmit。那是jQuery Form Plugin,对吧?有没有可能是这个问题?

您是否尝试过改用jQuery.post?

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于JQuery Flickr文件上传不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 cypress-file-upload 将文件上传到 jQuery.filer 不起作用

Jquery $.get 或 $.ajax 在 Internet Explorer 中不起作用

从 jquery 将数据发布到 rails 控制器不起作用

iframe 文件上传在 IE 上不起作用

没有jQuery,图片上传在Canvas中不起作用?

使用 django ajax jquery 提交一个文件不起作用的表单