Skip to main content
 首页 » 编程设计

c#之通过 C# 或 jQuery ajax 调用时 Web API 不工作

2024年01月29日3198°冷暖

快疯了。第一次调用设置 session ,第二次调用获取 session 。第一个“发布”调用正确返回用户名和 session ID,但当我尝试获取 session 时,它返回空白,状态代码为 200。

HttpClient (C#) 代码也是如此。

如果我尝试通过浏览器或 PostMan 进行设置,这两个调用都可以正常工作。

        $.ajax({ 
        url: "http://localhost:xxxx/xxxx/api/v1/session?username=xxxx&password=xxxx",  
        type: 'POST',             
        dataType: 'application/json', 
        success: function (result) { 
            $.ajax({ 
                url: "http://localhost:xxxx/xxxx/api/v1/session", 
                type: 'Get', 
                dataType: 'application/json', 
                crossDomain: true, 
                success: function (result) { 
                    debugger; 
 
                }, 
                error: function (result) { 
                    debugger; 
                } 
            }); 
        }, 
        error: function (result) { 
            debugger; 
            $.ajax({ 
                url: "http://localhost:xxxx/xxxx/api/v1/session", 
                type: 'Get', 
                dataType: 'application/json', 
                crossDomain: true, 
 
                success: function (result) { 
                    debugger 
 
                }, 
                error: function (result) { 
                    debugger; 
                } 
            }); 
        } 
    }); 

postman 的 Get 请求 {"sessionId":"088BE3296B8778948F649A6B7B8C064B","userName":"user1"}

我错过了什么吗?

请注意,Web-API 由第三方公开。

请您参考如下方法:

问题是您使用了 post 方法并试图在查询字符串中传递数据。

function DoLogin() { 
        if (document.getElementById("Email").value == "" && document.getElementById("Password").value == "") { 
            document.getElementById("Email").focus(); 
            toastr.error("Please enter email and password."); 
        } 
        else if (document.getElementById("Email").value == "") { 
            document.getElementById("Email").focus(); 
            toastr.error("Please enter valid email address."); 
        } 
        else if (document.getElementById("Password").value == "") { 
            document.getElementById("Password").focus(); 
            toastr.error("Please enter valid password."); 
        } 
        else { 
            document.getElementById("ButtonLogin").value = "Validating your account..."; 
            document.getElementById("ButtonLogin").disabled = true; 
            var model = { 
                Email: $('#Email').val(), 
                Password: $('#Password').val() 
            } 
            $.ajax({ 
                type: "POST", 
                data: JSON.stringify(model), 
                url: "@Url.Action("Login", "Account", null)", 
                contentType: "application/json" 
            }).success(function (res) { 
                var Type = res.type; 
                if (Type == "error") { 
                    toastr.error(res.value); 
                    document.getElementById("ButtonLogin").value = "login"; 
                    document.getElementById("ButtonLogin").disabled = false; 
                } 
                else { 
                    window.location.href = res.returnUrl; 
                } 
            }); 
        } 
    }