2010-08-11 5 views
0

Я только начинаю использовать библиотеку JQuery, так что несите со мной, если мне не хватает чего-то очевидного. У меня есть webserivce с парой методов испытаний ...JQuery Ajax 500 Внутренняя ошибка

[WebService(Namespace = "http://localhost/WebServices")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService] 
public class SystemServices : BaseWebService 
{ 
    [WebMethod(EnableSession = true)] 
    public string GetDate() 
    { 
     return DateTime.Today.ToShortDateString(); 
    } 
    [WebMethod(EnableSession = true)] 
    public string PerformPISearch(string firstName, string lastName) 
    { 
     return firstName + lastName; 
    } 

я могу использовать $ .ajax запрос на использование метода GetDate, который не имеет параметров, не вопрос, но я получаю Внутренняя ошибка сервера 500 возвращенный из jQuery, когда я пытаюсь запустить метод PerformPISearch (конструктор веб-службы никогда не попадает) ... Поэтому я предполагаю, что я что-то делаю неправильно с тем, как я пытаюсь передать параметры методу, но я могу " т выяснить, что ...

 function PerformSearch() { 
    var strFirstName = (txtFirstName.GetValue() == null ? "" : txtFirstName.GetValue()); 
    var strLastName = (txtLastName.GetValue() == null ? "" : txtLastName.GetValue()); 
    var webserviceURL = '<%= WebServiceURL %>' 

    $.ajax({ 
     type: "POST", 
     url: webserviceURL + "SystemServices.asmx/PerformPISearch", //Can change to use GetDate and it works. 
     data: ({firstName: strFirstName, lastName: strLastName}), //thinking the problem is here 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      AjaxSucceeded(msg); 
     }, 
     error: AjaxFailed 
    }); 
} 

function AjaxSucceeded(result) { 
    alert(result.d); 
} 
function AjaxFailed(result) { 
    alert(result.status + ' ' + result.statusText); 
} 

ответ

3

вы пробовали удаление "()":

data: {firstName: strFirstName, lastName: strLastName} 

или положить все в строку:

data: "{'firstName': '" +strFirstName + "', 'lastName': '" +strLastName+ "'}" 
+0

данных: "{ 'FirstName':" + strFirstName + " ' 'LastName':'" + strLastName + "}" мы имеем победитель, спасибо ... – AGoodDisplayName

+0

Вы пробовали $ .post? Я использую его с ASP.NET MVC, может уменьшить код, если он работает :) $ .post (webserviceURL + "SystemServices.asmx/PerformPISearch", { ПгвЬЫате: strFirstName, LastName: strLastName }, функции (результат) { \t // сделать что-то }) – mathieu

+0

Нет, у меня нет, но я взгляну на него. Еще раз спасибо. – AGoodDisplayName

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