2016-02-08 4 views
0

Я столкнулся с проблемой, выполняющей запрос AJAX.AJAX - действие «Успех» не вызывается при указании contentType и dataType

При указании contentType и dataType, success раздел не выполняется. Однако при отсутствии этого он выполняет, но отображает весь контент сгенерированной страницы html.

Вот мой AJAX вызов:

$.ajax({ 
    type: "POST", 
    url: "Default.aspx/GeneratePdfs", 
    data: '{frequency: "' + $('#ddlFrequency option:selected').text() + '" }', 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (data) { 
     $('#rptDisplay').text(data); 
     alert("1"); 
    }, 
    failure: function() { 
     //    $('#rptDisplay').text("Error"); 
     alert("2"); 
    } 
}); 

Это code behind:

[System.Web.Services.WebMethod] 
public static void GeneratePdfs(string frequency) 
{ 
    string test = frequency; 
    HttpResponse response = HttpContext.Current.Response; 
    response.Write(test); 
} 

Это фрагмент html страницы:

<div id="rptDisplay" class="well" runat="server" clientidmode="Static"> 

</div> 

Мне нужно, чтобы отобразить данные, возвращаемые из Web Method в моем div sectio п.

Что я делаю неправильно?

ответ

1

Надеется, что это поможет вам:

CONTENTTYPE: При отправке данных на сервер.

dataType: Тип данных, которые вы ожидаете от сервера. Если ни один не указан, jQuery попытается вывести его на основе MIME-типа ответа.

Пожалуйста, найдите код:

[System.Web.Services.WebMethod] 
    public static string GeneratePdfs(string frequency) 
    { 
     string test = "frequency";//Hard Code value 
     HttpResponse response = HttpContext.Current.Response; 
     return test; 
    } 

    Design: 
     <asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent"> 
     <div id="rptDisplay" class="well" runat="server" clientidmode="Static"> 

     </div> 
    <script src="Scripts/jquery-1.7.1.min.js"></script> 
    <script src="Scripts/jquery-ui-1.8.20.min.js"></script> 
    <script type="text/javascript"> 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/GeneratePdfs", 
     data: '{frequency: "' + $('#ddlFrequency option:selected').text() + '" }', 
     contentType: "application/json;charset=utf-8", 
     // dataType: "text/Json", 
     success: function (data) { 
      debugger; 
      if (data.d!="") { 
       $('#rptDisplay').text(data.d); 
      } 
      alert("1"); 
     }, 
     failure: function() { 
      //    $('#rptDisplay').text("Error"); 
      alert("2"); 
     } 
    }); 
</script> 

+0

Спасибо годов. Теперь он отображает данные – gene