Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ajax post success函数不工作_Jquery_Ajax - Fatal编程技术网

Jquery ajax post success函数不工作

Jquery ajax post success函数不工作,jquery,ajax,Jquery,Ajax,这应该很简单。我所要做的就是发布一个ajax帖子,从我的数据库中获取一个值,并将该值放入一个输入元素中。我已经看过了几乎所有的教程,但我就是看不懂。它成功地命中了我的服务器端MVC控制器函数,该函数返回了我需要的值,但是我的ajax帖子中的错误函数一直在触发,而不是成功函数。有人有什么建议吗 $.ajax({ url: "@Url.Action("GetClientGUIDFr

这应该很简单。我所要做的就是发布一个ajax帖子,从我的数据库中获取一个值,并将该值放入一个输入元素中。我已经看过了几乎所有的教程,但我就是看不懂。它成功地命中了我的服务器端MVC控制器函数,该函数返回了我需要的值,但是我的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

函数GetClientGUIDFromID(clientId为字符串)作为ActionResult
Dim clientGuid作为字符串
Dim sCommands作为新的SQLCommands(mysqlservernametter.SetServerName)
clientGuid=sCommands.GetValue(“主”、“客户端”、“Id”、clientId、“guid”)
返回Json(clientGuid,JsonRequestBehavior.AllowGet)
端函数

要找出问题的真正原因,请在单独的窗口中打开位于@
URL.Action(“GetClientGUIDFromID”,“Account”)
中的URL。如果是POST方法,请尝试使用扩展测试它,并发现真正的问题是什么

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

$.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: '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之后)。键…

您的服务器是否返回json编码的响应?如果不成功,将无法执行下载Telerik的Fiddler以便您可以轻松查看服务器的响应,响应应为200(HTTP Ok),否则将转到jQuery Ajax调用的错误函数您确定您的服务端方法没有失败吗,您正在使用调试器在Visual Studio中点击一个断点并逐步执行,对吗?顺便说一句,您可以从服务器端方法中删除JsonRequestBehavior.AllowGet,使用JsonRequestBehavior.AllowGet会暴露JSON黑客攻击安全漏洞,黑客可以访问JSON响应负载中的敏感数据。无论如何,您都在使用$.ajax进行POST类型调用,因此不需要JsonRequestBehavior.AllowGet。有时您需要JsonRequestBehavior.AllowGet来响应GET,但您的Ajax调用不是其中之一。是的,先生,我在服务器函数上设置了一个断点,它从数据库中获取我的值……是否可能因为我的JS在我的_layout.vbhtml文件中而失败?我不认为这有什么关系……我将删除JsonRequestBehavior并进行更多的测试,我最初没有,但我想我会尝试一下(消除过程),感谢您的输入。好消息是,这些都没有命中错误函数。坏消息是,它们都没有达到成功功能(我一定在幕后发生了一些奇怪的事情,因为这应该不会很困难。这很尴尬。再往下一点,还有一个post函数干扰了我正在编写的post函数。您提供的第一个解决方案正在工作,因为我已经注释掉了另一个post函数。谢谢大家的帮助!
$.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);
    }

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


});