我在將Cloudinary Javascript上傳到他們的服務器時遇到了一些麻煩。Rails:Cloudinary Uploader無法上傳
我跟着鋼軌方向從他們的博客文章: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寶石使用?
該項目使用Rails 4和Ruby 2.
任何其他的想法,將不勝感激。
編輯1
由於下面我用的開發工具的意見。兩種結果:
- 檢查網絡,當我嘗試上傳時沒有發生任何活動。
雖然所有由Cloudinary所需的庫被加載,有一些JavaScript錯誤
未捕獲的類型錯誤:對象功能(選擇器,上下文){返回新jQuery.fn.init(選擇器,上下文);}沒有方法 'ajaxTransport' jquery.iframe-transport.js:38
未捕獲的類型錯誤:無法設置屬性未定義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將回到空白,所以我無法保存以備後用。
文件是否上傳到cloudinary服務器?如果你打開Chrome瀏覽器 - >開發者工具 - >網絡標籤,然後點擊瀏覽按鈕並選擇一個文件,它應該顯示一個上傳請求到cloudinary並且響應將是一個關鍵。 –
除了上面的評論,請檢查頁面上是否有任何JS錯誤以及是否包含所有必需的JS文件。 –
感謝您的提示。有兩個錯誤:Uncaught TypeError:Object function(selector,context){return new jQuery.fn.init(selector,context);} has no method'ajaxTransport'jquery.iframe-transport.js:38 Uncaught TypeError:Can not設置未定義的屬性'xhrFileUpload'jquery.fileupload.js:33 –