Веб-метод jQuery ajax call не может установить тип данных: json

#c# #jquery #asp.net #ajax #asp.net-ajax

#c# #jquery #asp.net #ajax #asp.net-ajax

Вопрос:

Я написал веб-метод с использованием c #, веб-метод, как показано ниже

   [WebMethod]
    public string getname(string name)
    {
        return "my name is"   name.ToString();
    }
  

Я создаю другую страницу aspx для вызова веб-метода. Если я установлю тип данных и ContentType, он будет возвращать мне сообщение об ошибке и аварийный сбой. Если я удалю ContentType и datatype, это предупредит меня о порядке. Но когда я оповещаю (data), который возвращает данные из веб-метода, он показывает мне весь HTML-код созданной мной страницы. Я проверяю консоль браузера, она показывает мне СООБЩЕНИЕ http://webservice.aspx/getname 500 (внутренняя ошибка сервера). Какую ошибку я допускаю. Пожалуйста, помогите.

  function getname()
    {            
        var name = "Peter";
        $.ajax({
            url: '/webservice.aspx/getname',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            type: "POST",
            data: "{'name':"   name   "}",
            success: function (data) {
                alert("OK");
                alert(data);
            },
            error: function (result) {
                alert("fail");
            }
        });
    }
  

Комментарии:

1. Если вы используете веб-метод на странице aspx, он должен быть статическим. Измените его ——общедоступная статическая строка getname—

Ответ №1:

Попробуйте это:

 function getname()
    {            
        var name = "Peter";
        $.ajax({
            url: '/webservice.aspx/getname',
            //contentType: "application/json; charset=utf-8",
            //dataType: "json",
            type: "POST",
            data: {name:name}
            success: function (data) {
                alert("OK");
                alert(data);
            },
            error: function (result) {
                alert("fail");
            }
        });
    }
  

Комментарии:

1. Привет, Малкам, похоже, что веб-метод не возвращает данные. данные предупреждения дают мне кучу исходного кода html.

2. Проверьте исходный код html, возвращает ли он какое-либо сообщение об ошибке?

3. возвращаемые данные представляют собой исходный код html. Почему это произойдет? Он не возвращает данные из веб-метода. Также нет ошибки в консоли браузера. У вас есть какие-либо идеи?

4. посмотрите, что там в html?

5. Малкам, возвращаемый HTML-код является исходным кодом самой страницы. и некоторую дополнительную информацию, как показано ниже <!— Visual Studio Browser Link —> <script type=»application/json» id=»__browserLink_initializationData»> {«appName»:»Chrome»,»requestId»:»47e64d7ae932477786921b0457a21902″} </script> <script type=»text/javascript» src=» localhost:52834/a3ed8fb28dd04614b5ea6d1f95150686/browserLink » async=»async»></script> <!— End Browser Link —>

Ответ №2:

Тип данных определяет, к какому типу поступают данные (в javascript). Не тот тип данных, которые вы отправили.

в js: данные: { имя: имя },

в WebMethod: верните Json.Кодирование (xxx);