2013-10-06 122 views
0

我有一個json方法的問題,它給了我這個錯誤。 這是我的代碼:AJAX json方法未定義的錯誤

function test() { 
      $.ajax({ 
       type: "POST", 
       url: 'zz.aspx/GetDate', 
       //processData: false, 
       data: "{'keyWord':" + keyWord + "}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        if (msg.length > 0) { 


         $("#suggestions").fadeIn(); 
         $("#suggestions").html(msg); 

         setTimeout('ToogleAct();', 500); 
        } else { 
         $("#suggestions").fadeOut(); 
         $('#actions').css('display', 'none'); 
         alert('ERROR [sasa ]'); 
        } 
       }, 
       error: function (xhr, status, error) { 
        alert('ERROR [ ' + error + ' ]'); 
       } 
      }); 

     } else { 
      $("#suggestions").fadeOut(); 
     } 
    } 

,這是C#代碼:

public static string GetDate(string keyWord) 
    { 

     string S = ""; 
     DataTable dt = DataLayer.Maghale.Search(keyWord).Tables[0]; 
     S += "<div id=\"SGR\" style=\"height: auto;\"><div id=\"APL\">"; 
     foreach (DataRow dr in dt.Rows) 
     { 
      S += "<a href=\"" + dr["Alias"].ToString() + "\">" + 
       "<div class=\"imageholder\"> " + 
       "<img src=\"~/MakeThumbnail.aspx?file=~/Images/CustomImages/Seo-S.png&i=80&j=80\")\"></div>" + 
       "<span class=\"SGSH1\">" + dr["Title"].ToString() + "</span>" + 
       "<span class=\"SGSH2\"> " + dr["Description"].ToString().Substring(0, 15) + " ... </span></a>"; 
     } 
     S += "</div></div>"; 
     return S; 
    } 

當我使用類型:帖子; 然後我的msg.Length> 0返回false 爲什麼發生了,我應該怎麼做才能返回我的字符串並將其放入html中?

當我使用類型= GET: 給我未定義的錯誤 這是郵政之間的差異,獲取和何時應使用GET或POST 請告訴我,謝謝

+0

嘗試'數據類型: 「文本」'接收到正確的格式。 –

回答

0

您需要正確設置您的ajax調用。你傳遞一個字符串到一個有效的ajax的data,但我想你想在服務器端使用'keyWord'變量來訪問提交的值。更改AJAX的data如下:

data: { keyWord: $.trim($("#txtSearchBox").val()) }, 

此外,改變setTimeout('ToogleAct();', 500);setTimeout(ToogleAct, 500);

+0

tnx但關鍵字只是文本框就像這樣:keyWord = $ .trim($(「#txtSearchBox」).val());我不明白你在說什麼 –

+0

編輯解決方案 – Rajesh

+0

這是否解決了你的問題? – Rajesh

0

如果你看一看這個環節,你會得到post v的完整描述gethttp://www.cs.tut.fi/~jkorpela/forms/methods.html

的HTML規範技術上定義 之間的區別「GET」和「POST」,這樣形成的數據前者是指將被編碼 (通過瀏覽器)轉換爲URL,而後者表示表單數據爲 以顯示在郵件正文中。但是規範還給出了 使用建議:當表單處理爲「冪等」時應使用「GET」方法,並且僅在這些情況下。作爲簡化,我們可以說「GET」基本上只是獲取 (檢索)數據,而「POST」可能涉及任何內容,例如存儲或更新數據,訂購產品或發送電子郵件。

在你成功的時候,檢查msg.d,使用chrome開發工具或者firebug來檢查你收到的回覆。

我建議的另一件事是在使用字符串連接時使用StringBuilder類。所以,而不是string +=,你將有StringBuilder.Append這是更有效的。

+0

tnx現在我知道的差異,但什麼是Undefin錯誤??我編程自動完成搜索,我需要得到類型 –

+0

解決了msg.d謝謝 –

+0

所以,你現在已經解決了這個問題? – christiandev