2014-01-07 56 views
-2

我想jquery.post後,得到返回的JSON數據,但...如何在jQuery post之後獲取返回的json數據?

<script> 
     function sendToJsonTitleConverter() { 
      $.post("/engine/title-converter", { 
       NewTitle: $("#NewTitle").val() 
      }); 
     } 
    </script> 

MVC:

public ActionResult JsonTitleConverter() 
    { 
     if (!string.IsNullOrWhiteSpace(Request.Form["NewTitle"])) 
     { 
      string title = myFunction.ClearTitle(Request.Form["NewTitle"]); 
      var result = new LinkedList<object>(); 
      result.AddLast(new 
      { 
       Title = title 
      }); 
      return Json(result, JsonRequestBehavior.AllowGet); 
     } 
     else 
     { 
      return null; 
     } 
    } 

返回的JSON:

[{ 「標題」 :「test 21312 asdasd asas」}]

如何在JavaScript中獲得標題?

回答

1

您需要一個「回調函數」,它們是在異步操作完成時設置爲執行的函數。排序的「待辦事項」,因爲您無法爲非順序操作執行順序代碼。

在此示例中,我更喜歡使用添加回調的延遲樣式,以便函數的名稱(在此例中爲done)可讀。您可以另外輸入failcomplete而不會感到困惑。

此外,您需要聲明您正在獲取JSON數據。 jQuery有時無法獲得正確的類型,特別是在他們的速記功能上。

$.post("/engine/title-converter", { 
    NewTitle: $("#NewTitle").val() 
    },'json') 
    .done(function(data){ 
    var title = data[0].Title 
    }); 
+0

你是生命的救星:)謝謝了很多! –

1

像這樣:

function sendToJsonTitleConverter() { 
    $.post("/engine/title-converter", {NewTitle: $("#NewTitle").val()}, function(data){ 
     var title = data[0].Title; 
     alert(title); 
    }, 'json'); 
} 

乾杯