1

Я пытаюсь опубликовать строку веб-службы, но я получаю эту ошибку (Project Chrome Расширение Google):JQuery AJAX Сообщение: 500 (Внутренняя ошибка сервера)?

JQuery-2.1.1.min.js: 4 POST http://localhost:49242/Service.asmx/test 500 (Внутренняя ошибка сервера)

Вот мой Аякса код:

var data = {}; 
data.param1 = words[0]; 

$.ajax({ 
    data: JSON.stringify({ 'data': data.param1 }), 
    dataType: 'application/json', 
    url: 'http://localhost:49242/Service.asmx/test', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    success: function (result) { 
     alert(result); 
    }, 
    failure: function (errMsg) { 
     alert(errMsg); 
    } 
}); 

Моя служба:

[WebMethod] 

[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] 
public string test(string param1) { 
    return param1; 
} 

Я работаю над этой проблемой около 3 дней. Вы можете мне помочь ?

Кстати, у меня есть вопрос. Я отправляю json-переменную для обслуживания с помощью ajax (как вы видите), но возвращающее значение xml. Есть ли проблема или [System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] проблема с решением кода?

+0

напишите 'json' в dataType – uzaif

+0

Спасибо, но это не сработало. – user5535577

+0

Вы проверили, что ваш URL работает, на котором вы публикуете данные? – uzaif

ответ

2

Ваша ошибка исходит из вашего параметра данных. Stringify data объект вместо { 'data': data.param1 }:

var data = {}; 
data.param1 = words[0]; 

$.ajax({ 
    data: JSON.stringify(data), 
    dataType: 'application/json', 
    url: 'http://localhost:49242/Service.asmx/test', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    success: function (result) { 
     alert(result); 
    }, 
    failure: function (errMsg) { 
     alert(errMsg); 
    } 
}); 

Ваши stringifyed данные приведут к {"param1":"Words"}, то ваша служба должна быть в состоянии связать параметр param1.

+0

Спасибо, что это сработало. Но я отправил строку «blah» службы, но служба возвратила [object Object]. Зачем? – user5535577

+0

Ваш прием. Какой браузер вы использовали? –

+0

Хром и я позаботились о проблеме. Это работало: var data = response.hasOwnProperty («d»)? response.d: ответ; предупреждение (данные); – user5535577

0

Я столкнулся с этим типом ошибок при ответе на сообщение AJAX. Я тратил слишком много времени на этот вопрос, и, наконец, я поймал его.

Он выдает внутреннюю ошибку 500, потому что ответ AJAX имеет большое количество контента с сервера, поэтому он возвращает тайм-аут выполнения.

Поэтому я просто добавил строку ниже, и она работает нормально.

Page.Server.ScriptTimeout = 300; 
+0

Где вы добавляли эту строку? [@Belle] (https://stackoverflow.com/users/8019185/belle) задал вопрос ([попытался отредактировать ваше сообщение как ответ] (https://stackoverflow.com/review/spected-edits/17723040)) –

+0

Я вызываю функцию ajax с URL-адресом страницы «emailapi.aspx». В этой ситуации я получаю эту ошибку, но когда я добавил ** Page.Server.ScriptTimeout = 300; ** в emailapi.aspx. это прекрасно работает. – Jitendra

Смежные вопросы