我在将Cloudinary Javascript上传到他们的服务器时遇到了一些麻烦。
我在他们的博文中跟踪了导航的说明:http://cloudinary.com/blog/direct_image_uploads_from_the_browser_to_the_cloud_with_jquery
我最终得到了页面上的基本选择文件按钮。单击它可以让我浏览并选择一个图像,但除了显示按钮旁边的文件名称之外,没有其他任何事情发生。之后查看媒体库显示没有上传任何内容。
查看我看到的表单的页面源:
<script type="text/javascript">$.cloudinary.config({"api_key":"xxxxxxxxxxxxx","cloud_name":"xxxxxxx"});</script>
<form accept-charset="UTF-8" action="/admin/settings/update" class="new_settings" id="new_settings" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="wwgaFBlShaTklqEY7sz6xwhpK6JKtNNMFvnNJCX4zS0=" /></div>
<input class="cloudinary-fileupload" data-cloudinary-field="settings[image_id]" data-form-data="{"timestamp":1381477800,"callback":"http://127.0.0.1:3000/cloudinary_cors.html","use_filename":1,"folder":"wtdu/header","signature":"xxxxxxxxxx","api_key":"xxxxxxx"}" data-url="https://api.cloudinary.com/v1_1/xxxxxxxx/auto/upload" name="file" type="file"></input>
<input name="commit" type="submit" value="Create Settings" />
</form>
如果发生这种情况,那么cloudinary输入字段中的数据已经过消毒了吗?
我确实添加了一个提交按钮,但这并没有影响任何内容。我没想到,因为图像应该从浏览器上传,而不是控制器中的更新方法。
只是一个想法。我正在使用jquery-rails gem。这是正确使用的jquery gem吗?
该项目正在使用Rails 4和Ruby 2。
任何其他想法将不胜感激。
修改1
感谢下面的评论,我使用了开发人员工具。两个结果:
虽然加载了Cloudinary所需的所有库,但仍有一些javascript错误
Uncaught TypeError:Object function(selector,context){return new jQuery.fn.init(selector,context);}没有方法'ajaxTransport'jquery.iframe-transport.js:38
Uncaught TypeError:无法设置未定义的jquery.fileupload.js属性'xhrFileUpload':33
这些是包含的JS文件
<script src="/javascripts/jquery.ui.widget.js"></script>
<script src="/javascripts/jquery.iframe-transport.js"></script>
<script src="/javascripts/jquery.fileupload.js"></script>
<script src="/javascripts/jquery.cloudinary.js"></script>
修改2
事实证明,jquery.js没有被包括在内,尽管有一个google.load(“jquery”,“1.2.6”);页面源中的语句。
一旦我加入jquery.js,它就开始上传到Cloudinary。谢谢大家的帮助。
但是,我还有一些问题。一旦上传包含,返回200 OK,我没有得到返回值。图片ID将返回空白,因此我无法将其存储以供日后使用。
答案 0 :(得分:1)
请问您是否包含jQuery(jquery.js应该包含在上面列出的四个文件之前)。
答案 1 :(得分:0)
这个问题很老,但我觉得有必要回答它,因为我刚刚遇到并解决了这个问题。我的错误是我没有在CarrierWave上传器中注释掉默认的图像存储选项(存储:文件)。