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 不起作用