2015-04-21 65 views
0

我必須發送一個真實性標記jqgrid編輯url。問題是url和參數具有不同的值。在jqgrid中發送參數時的困難

開始POST

"/users-jqedit/?authenticity_token=hSn3r02sT3w15HY+dNjpYvUuXxWclpXz 
RKJnfMBJSkQ=" 

但參數是

Parameters:{"authenticity_token"=> 
"hSn3r02sT3w15HY dNjpYvUuXxWclpXzRKJnfMBJSkQ="} 

導致無法驗證CSRF令牌真實性錯誤。

任何線索?這裏是代碼

$(function() { 
$("#list").jqGrid({ 
     url:'/users-jq', 
     editurl:"/users-jqedit/?authenticity_token=<%=form_authenticity_token.to_s%>", 
+1

很抱歉,但什麼參數正是你**要發送** ?你寫了什麼是錯誤的,但沒有明確描述哪些信息和期望你的服務器端。你可能需要將'authenticity_token'放在POST請求的** body **中而不是URL參數中?或者您需要將authenticity_token放在HTTP標頭中?什麼期望您的服務器? – Oleg

+0

我想發送authenticity_token。其中有+符號,真實性失敗,因爲+被替換爲空格。我的服務器端代碼甚至沒有被觸及,因爲參數中的authenticity_token無效。我在軌道-4順便說一句。 @ Oleg。我已經用gsub('+','%2B')解決了這個問題,但是擔心這會發生在其他角色上 – sethi

+0

爲什麼你不用url編碼你的字符串?看起來這是perl ... so URI:Escape(uri_escape) – Reflective

回答

1

如果我正確理解你的問題,那麼你需要使用

editurl: "/users-jqedit/?authenticity_token=" + 
    encodeURIComponent("<%=form_authenticity_token.to_s%>"), 

,而不是

editurl:"/users-jqedit/?authenticity_token=<%=form_authenticity_token.to_s%>", 
+0

是的,完全謝謝。 – sethi

+0

@sethi:不客氣! – Oleg