jQuery Flickr文件上传不起作用
时间:2020-03-06 14:52:19 来源:igfitidea点击:
我正在尝试使用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没有更新,因为它没有运行成功函数。有人有想法么。
谢谢
解决方案
我们将无法以这种方式通过AJAX上传文件。
由于JavaScript的安全性限制,无法使用纯AJAX文件上传系统。
我看到我们正在使用ajaxSubmit。那就是jQuery Form插件,对不对?问题可能与之有关吗?
我们是否尝试过使用jQuery.post?
请参阅有关使用AJAX上传文件的其他主题:
如何异步上传文件?
我从未尝试过,但是看来我们无法获得服务器响应(无论如何都不容易)
ajax无法跨域工作。
我们不能使用Ajax将表单从一个域提交到另一个域。
我们可以做的是在域上使用proxy.php文件。使用ajax将表单提交到proxy.php。 proxy.php中的代码将使用CURL将表单提交给flickr。我们将在php.net或者许多其他站点上获得CURL代码