2015-12-21 59 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之后...)