2015-12-21 90 views
-1

這應該很簡單。我想要做的就是發出一個ajax帖子來從我的數據庫中獲取一個值,並將該值放入一個輸入元素中。我曾經在那裏看過有關教程,但我無法得到它。它成功地擊中了我的服務器端MVC控制器函數,該函數返回我需要的值,但是我的ajax文章的錯誤函數保持開啓而不是我的成功函數。有人有建議嗎?ajax發帖成功功能不起作用

      $.ajax({ 
           url: "@Url.Action("GetClientGUIDFromID", "Account")", 
           type: "POST", 
           data: { clientId: $('#clientIdToSelectFromDropdown').val() }, 
           success: function (data) { 
            $("#guid_client").val(data); 
           }, 
           error: function() { 
            alert('failed'); 
           } 

          }) 

服務器端代碼,從客戶端處理AJAX調用:

<HttpPost> 
Function GetClientGUIDFromID(clientId As String) As ActionResult 
    Dim clientGuid As String 
    Dim sCommands As New SQLCommands(MySQLServerNameSetter.SetServerName) 
    clientGuid = sCommands.GetValue("main", "client", "Id", clientId, "guid") 
    Return Json(clientGuid, JsonRequestBehavior.AllowGet) 
End Function 
+0

你的服務器是否返回一個JSON編碼的響應?如果不成功將不會執行 – dylan7

+0

嘗試下載Telerik's Fiddler,以便您可以輕鬆地看到服務器的響應,響應應該是200(HTTP Ok),否則它將轉到您的錯誤函數jQuery Ajax調用 –

+0

您確定你的服務端方法並沒有失敗,你正在使用調試器在Visual Studio中創建一個斷點,是否正確? –

回答

-1

爲了找出問題的真正原因,打開位於@Url.Action("GetClientGUIDFromID", "Account")在一個單獨的窗口中的網址。在這情況下是POST方法嘗試測試它使用POSTMAN延伸和探索什麼是來救你

也是另一種方式來獲得有關problemchange錯誤的詳細信息的錯誤處理程序是像下面

$.ajax({ 
    url: "@Url.Action("GetClientGUIDFromID", "Account")", 
    type: "POST", 
    data: { clientId: $('#clientIdToSelectFromDropdown').val() }, 
    success: function (data) { 
     $("#guid_client").val(data); 
    }, 
    error: function(xhr, status, error) { 
     var err = eval("(" + xhr.responseText + ")"); 
     alert(err.Message); 
    } 

}) 
真正的問題

添加服務器端代碼後,得到的評論如下試驗和更新,如果它的正常工作:(根據您的工藝路線,執行下列操作之一應該工作)

$.ajax({ 
    url: "@Url.Action("GetClientGUIDFromID", "Account")", 
    type: "POST", 
    data: { clientId: $('#clientIdToSelectFromDropdown').val() }, 
    dataType: "application/json" 
    success: function (data) { 
     $("#guid_client").val(data); 
    }, 
    error: function(xhr, status, error) { 
     var err = eval("(" + xhr.responseText + ")"); 
     alert(err.Message); 
    } 

}) 

或者

$.ajax({ 
    url: "/account/GetClientGUIDFromID/" + $('#clientIdToSelectFromDropdown').val(), 
    type: "POST", 
    success: function (data) { 
     $("#guid_client").val(data); 
    }, 
    error: function(xhr, status, error) { 
     var err = eval("(" + xhr.responseText + ")"); 
     alert(err.Message); 
    } 

}) 

或者

$.ajax({ 
    url: "/account/GetClientGUIDFromID/?clientId=" + $('#clientIdToSelectFromDropdown').val(), 
    type: "POST", 
    success: function (data) { 
     $("#guid_client").val(data); 
    }, 
    error: function(xhr, status, error) { 
     var err = eval("(" + xhr.responseText + ")"); 
     alert(err.Message); 
    } 

}) 
+0

感謝您的意見。好消息是,這些都沒有發揮錯誤功能。壞消息是,他們中的任何一個都沒有成功。 :(我必須在幕後發生一些奇怪的事情,因爲這不應該很難 – codegr8

+0

好吧,這是令人尷尬的。還有另一個帖子功能進一步干擾了我正在寫的。你提供的第一個解決方案現在正在工作,我已經註釋掉了其他的帖子功能。感謝大家的幫助! – codegr8

0

給一試:因爲你的編輯

$.ajax({ 

url: "@Url.Action("GetClientGUIDFromID", "Account")", 
type: "POST", 
data:'clientId='+ $('#clientIdToSelectFromDropdown').val(), 
dataType: 'json' 
}).done(function(data) {  

//The json is null so probably failed 
if(data === null) 
    alert('failed'); 

//Display your json in a console 
console.log(json); 


});   

好,添加 - >數據類型: 'JSON' 那麼,如果它的工作,數據JSON將出現在控制檯(在你可能使用一些鍵作爲json.key之後...)