ajax发布成功功能不起作用

时间:2015-12-21 22:15:07

标签: jquery ajax

这应该很简单。我想要做的就是发出一个ajax帖子来从我的数据库中获取一个值,并将该值放在一个输入元素中。我已经看过那里的教程,但我无法得到它。它成功点击了我的服务器端MVC控制器函数,它返回了我需要的值,但是我的ajax post的错误函数一直在触发而不是我的成功函数。有没有人有任何建议?

                            $.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

2 个答案:

答案 0 :(得分: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);  


});         

好的,因为你的编辑,添加 - &gt; dataType:&#39; json&#39;然后如果它工作,数据json将出现在控制台中(之后你可以使用一些键作为json.key ...)

答案 1 :(得分:-1)

要找出问题的真正原因,请在单独的窗口中打开位于@ Url.Action("GetClientGUIDFromID", "Account")的网址。如果是POST方法,请尝试使用POSTMAN扩展程序对其进行测试,并发现您遇到的真正问题

获取有关问题的错误详细信息的另一种方法是将错误处理程序更改为如下所示

$.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);
    }

})