2012-01-06 46 views
1

雖然一些jQuery的Ajax的,我碰到的這個問題與Chrome和Firefox不傳遞 查詢字符串值使用jQuery負載()Chrome和Firefox沒有通過查詢字符串值與

這裏是jQuery的負載()標記:

<a href="#" class="abort-invitation" id='abort-invitation-103'>abort</a> 

jQuery的腳本:

$('a.abort-invitation').live(
    { 
    click: function (e) { 
    var $link = $(this); 
    var querystringValue = $link.html(); 
    var randomnumber = new Date().getTime(); 
    var urlPath = '<%:Url.Action("AbortInvitation", "Evaluation") %>' + '? 
        inviteState=' + querystringValue + '&ran=' + randomnumber; 
    var $modal = GetModal(); 
    $modal.load(urlPath); 
    // more javascript ... 

MVC方法被調用上負載():

public PartialViewResult AbortInvitation() 
{ 
    ViewData["inviteState"] = Request.QueryString["inviteState"]; 
    var randomValue = Request.QueryString["ran"]; 
    return PartialView("~/views/evaluation/controls/AbortOrReactivate.ascx"); 
}  

雖然在Visual Studio計算機[ 「inviteState」]調試會給我當負載 從IE(8)發射,並且在瀏覽器(16.0)和FireFox(8)我會得到 「」 作爲值傳入的價值。有沒有人有一個線索或解決方案,爲什麼一個瀏覽器按預期工作,另外兩個傳遞查詢字符串值失敗? (注意:大部分變量只是試圖找出問題的原因,並且一次只分析一個問題,隨機數是附加的,以防有一些緩存在進行中,我們只關心。VAR「querystringValue」本身)

+0

如果在chrome中調試,'querystringValue'變量是否有值? – 2012-01-07 06:08:08

+0

我其實已經嘗試通過螢火蟲觀看請求帖子,並發現querystrings的值爲空,但如果我彈出一個帶有ulrPath變量的javascript警告框,我可以看到該字符串已成功創建。 – Chris 2012-01-07 16:19:47

回答

0

嘗試正確的URL編碼的請求參數:

var urlPath = '<%: Url.Action("AbortInvitation", "Evaluation") %>'; 
var $modal = GetModal(); 
$modal.load(urlPath, { 
    inviteState: querystringValue, 
    ran: randomnumber 
}); 

另外的jQuery已經禁用緩存內置的機制,所以這個ran變量似乎沒有必要:

var urlPath = '<%: Url.Action("AbortInvitation", "Evaluation") %>'; 
$.ajax({ 
    url: urlPath, 
    type: 'GET', 
    cache: false, 
    data: { inviteState: querystringValue }, 
    success: function(result) { 
     var $modal = GetModal(); 
     $modal.html(result); 
    } 
}); 
+0

我同意ran變量。我認爲這與查詢字符串的實際發佈沒有任何關係。我會嘗試正確的查詢字符串值的編碼,就像你已經給出的那樣,看看當時值是否已經通過。謝謝! – Chris 2012-01-07 16:16:50

+0

@克里斯,不,可能它沒有。你只需要確保你正確的URL編碼你的請求參數。 – 2012-01-07 16:17:42

+0

雖然我試圖讓URL編碼工作,但我確實認爲整個代碼塊並不像它本來的那樣清晰。我決定採取不同的方向,並在客戶端執行邏輯,避免將查詢字符串值傳遞給服務器。感謝您的幫助。 – Chris 2012-01-09 14:59:16