#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);