2015-06-21 3 views
0

То, что я пытаюсь сделать с помощью AJAX, - это когда я нажимаю кнопку «Выбрать», вся связанная информация, поступающая из SQL DB, будет назначена связанным ярлыкам. Проблема в том, что код AJAX ниже ($. Ajax) никогда не запускается (ни успех, ни ошибка). alert (res [0]) показывает истинный результат на экране (поэтому параметр clientid равен true).Ajax POST никогда не запускается, ни успех, ни ошибка

Это из проекта WebApplication в Asp.Net

 function BindClientSummaryForm() { 
      var skillsSelect = document.getElementById('<%= ddlSFoundClients.ClientID %>'); 
      var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text; 
      var res = selectedText.split('-'); 
      document.getElementById('<%= hiddenClientID.ClientID %>').value = res[0]; 
      alert(res[0]); 
      $.ajax({ 
       type: "POST", 
       url: "Default.aspx/GetClientSummaryData", 
       contentType: "application/json;charset=utf-8", 
       data: "{ 'clientid': " + res[0] + "}", 
       dataType: "json", 
       success: function (data) { 
        alert("deneme"); 
        document.getElementById('<%= lblClientNameSurnameD.ClientID %>').innerHTML = data.d.Firstname + " " + data.d.Lastname; 
        document.getElementById('<%= lblDateOpenedD.ClientID %>').innerHTML = data.d.DateFileOpened; 
        document.getElementById('<%= lblCityD.ClientID %>').innerHTML = data.d.City; 
... 
       }, 
       error: function (XMLHttpRequest, textStatus, errorThrown) { 
        alert("Error occured while filling ClientSummary part."); 
       } 
      }); 
      return false; 
     } 
<asp:Button runat="server" CssClass="btnSelect fieldButton" ID="btnSSelect" Text="Select" OnClientClick="return BindClientSummaryForm()"></asp:Button> 

CodeBehind

[WebMethod] 
public static MyClient GetClientSummaryData(String clientid) //GetData function 
{ 
    ... 
    return client; 
} 

отладчик никогда не опускается к методу GetClientSummaryData (ClientID) в C#, а также.

Я ценю за помощь.

+0

Вы превратили свой инструмент для разработчиков и посмотрели сеть? вы должны увидеть запрос, сделанный браузером. проверьте ответ сервера ... – AMember

+0

И у вас включен jQuery, и вы проверили консоль на наличие ошибок. – adeneo

+0

Самая глупая пропавшая вещь когда-либо :(

ответ

0

Попробуйте изменить значение content-type к text/plain на оба, клиента и сервера и использовать eval ('('+data+')') в функции успеха.

Я знаю, что это неверно, потому что ответ сервера - это json, но произошло со мной то же самое, и я обнаружил (я не знаю причины), когда вы возвращаете содержимое на сервере, а jQuery делает это как content-type: application/json не вызывайте функцию успеха.

0

Зачем вы указываете POST в качестве типа запроса? Похоже, это будет более естественно, если вы используете GET (об этом говорит нам даже название метода).

Также я не уверен в этом синтаксисе data: "{ 'clientid': " + res[0] + "}", потому что предпочитаю писать сценарии в отдельных файлах. В любом случае, вы можете попробовать написать data: { clientid: res[0] } вместо этого

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