2015-05-08 68 views
0

你好,我正在Laravel 5.0開發Laravel 5.0 TokenMismatchException與firefox上的uploadify

目前我將更新我的服務器上的圖像文件js。爲此,我使用插件uploadify,它適用於谷歌瀏覽器。

但在Mozilla Firefox中,我得到一個異常TokenMismatchException。

調試我的中間件(VerifyCsrfToken),我發現

$token = chbeVVpy5oyE3p1IDe4TzHFNJwEzZ7I6xnk9d03R 

$request->session()->token() = wW2S9zf1Xo82DxdmjXj0j5zubSWKhvadeRG20cmv 

這是我異常的原因。 但我不明白爲什麼這兩個值不等於。 我的JS調用是

<script type="text/javascript">   
    <?php $timestamp = time();?>   
    $(function() {   
     $('#file_upload').uploadify({ 
        'formData'  : { 
         'method' : 'post', 
         'timestamp' : '{!! $timestamp !!}', 
         '_token'  : '{!! csrf_token() !!}' 
        }, 
        'swf'  : '{!!asset("js/uploadify/uploadify.swf")!!}', 
        'uploader' : '{!! asset("uploadify")!!}', 
        'buttonText' : 'Votre logo'    });   });  </script> 

此代碼對谷歌Chrome瀏覽器...

編輯:插件uploadify使用閃存

+0

你最終解決了這個問題嗎?現在我必須使用一些插件來進行多文件上傳,我應該選擇哪一個? – vikram

+0

對不起,這個遲到的答案,如果我記得好,我沒有解決它,我只是用不同的方式爲Firefox的用戶。 – hemir

回答

0

嘗試使用此。 JQuery將每次在ajax請求頭中設置令牌標頭,這樣你就不需要自己設置。

// setting laravel 5 xsrf-token 
jQuery.ajaxSetup({ 
    headers: { 
     'X-XSRF-TOKEN': cookie('XSRF-TOKEN') 
    } 
}); 

這裏是我的javascript cookie函數。

/** 
* get the cookie 
* @param {string} name 
* @returns {string} 
*/ 
function cookie(name) { 
    var cookie_start = document.cookie.indexOf(name); 
    var cookie_end = document.cookie.indexOf(";", cookie_start); 
    return cookie_start == -1 ? '' : decodeURIComponent(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length))); 
} 
+0

你的答案首先THX我嘗試過,但沒有奏效:( 也許我忘了這一點,但uploadify使用閃存而不是AJAX(我不知道關於Ajax,但我認爲它不使用AJAX) BTW所有我的ajax方法適用於所有瀏覽器 – hemir

+0

由於uploadify長時間沒有更新,我認爲你可以更改另一個上傳插件。[jQuery-File-Upload](https://github.com/blueimp/jQuery-上傳文件) – Tinpont

相關問題