我在将 Cloudinary Javascript 上传到他们的服务器时遇到了一些麻烦。
我从他们的博客文章中遵循了 Rails 的说明: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>
云输入字段中的数据已被清理,应该发生这种情况吗?
我确实添加了一个提交按钮,但这并没有影响任何事情。我没想到会这样,因为图像应该是从浏览器上传的,而不是控制器中的更新方法。
只是一个想法。我正在使用 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);} has no method 'ajaxTransport' jquery.iframe-transport.js:38
未捕获的类型错误:无法设置未定义 jquery.fileupload.js:33 的属性“xhrFileUpload”
这些是包含的 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 是空的,所以我不能存储它以备后用。