将JSON对象发布到asp.net服务器

Bla*_*jok 0 c# asp.net ajax jquery json

我试图将一些json数据发布到我的localhost上的asp.netserver.接收代码的页面应该是主页面,但是我试过并得到"错误403:禁止",所以我尝试了我的手上的Web服务,现在我有一大堆其他问题.我的主要问题是我可以在PHP中简单地完成这项工作,但我不知道如何在ASP.NET中实现这一点.

这是我的js文件:

// Get User Login Credentials
function authenticate() {
    $(document).ready(function () {
        var user = $('.login-box form #txtLoginUsername').val().trim();
        var pass = $('.login-box form #txtLoginPass').val().trim();

        // alert(user + " : " + pass);

        $.ajax({
            type: "POST",
            url: "postback.asmx/Verify",
            data: {
                user: user,
                pass: pass
            },
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function() {
                if (response)
                {
                    alert('Works');
                }
                else {
                    $(".ui-widget").slideDown(1000, function () {});
                }
            }
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

现在我在按钮单击事件上调用此函数,我不添加我的服务器代码,因为它包含我从网络中拾取的几行代码并尝试混搭以使我的页面工作,但事实并非如此.我想知道从帖子中获取JSON对象并从我的服务器返回值/数组的简单适当方法.

我不希望使用任何asp.net服务器控件由于某些原因我无法透露,但我已被限制使用此类控件.

Sam*_*ida 5

您不能将WebMethod放在masterPage中.Ajax是客户端,如果您尝试在浏览器中访问site.master,则会收到相同的错误.

"说明:您所请求的页面类型未被提供,因为它已被明确禁止.扩展名".master"可能不正确.请查看下面的网址,并确保拼写正确."

您可以在其他文件.aspx中实现WebMethod并通过ajax调用.

我写了一个小例子.

CS

[WebMethod(enableSession: true)]
public static void Verify(string user, String pass)
{

    throw new Exception("I´m here");

}
Run Code Online (Sandbox Code Playgroud)

JS

function authenticate() {
            $(document).ready(function () {
                var user = $('#txtLoginUsername').val().trim();
                var pass = $('#txtLoginPass').val().trim();

                // alert(user + " : " + pass);
                var data = {};
                data.user = user;

                $.ajax({
                    type: "POST",
                    url: "default.aspx/Verify",
                    data: JSON.stringify({
                        user: user,
                        pass: pass
                    }),
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    success: function () {
                        if (response) {
                            alert('Works');
                        }
                        else {
                            $(".ui-widget").slideDown(1000, function () { });
                        }
                    }
                });
            });
        }
Run Code Online (Sandbox Code Playgroud)

注意Json如何传递数据

data: JSON.stringify({
                            user: user,
                            pass: pass
                        }),
Run Code Online (Sandbox Code Playgroud)

要调用webservice,请尝试以这种方式传递json.

当您调用Web服务时,浏览器的控制台中会出现相同的错误消息?

我想这会对你有所帮助.