'Not hitting success event on AJAX call In asp.net
I am trying to bind Drop down from services. But success event is not hitting.
Science I have total 5000 records so in
web.config file I have added Binding May be due to this region I am getting "Internal server Error" ? I am not sure about this Please guide me where I am doing wrong
AJAX
var AllProduct = [];
function GetAllProduct() {
var params = { DivisionCode: $('#ddlDivision').val() };
$.ajax({
type: 'GET',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(params),
url: 'Header.aspx/GetProduct',
dataType: 'json',
async: false,
success: function (res) {
Product(res.d)
OnSuccessProductCall();
}
});
function Product(pdata) {
AllProduct = pdata;
}
}
function OnSuccessProductCall(data, status) {
result = AllProduct;
$("[id$='ddlProduct']").append($("<option>").val("0").text("Select"));
if (result != undefined && result.length > 0) {
for (i = 0; i < result.length; i++) {
$("[id$='ddlProduct']").append($("<option>").val($.trim(result[i].BU_CAT_CODE)).text($.trim(result[i].BU_CAT_DESC)));
}
}
}
Services
While debugging I can see my services returning Collection of data But not able to hit Success Event
[WebMethod]
public static ServiceReference1.PRODUCT[] GetProduct(string DivisionCode)
{
ServiceReference1.MasterDataServiceClient oClient = new ServiceReference1.MasterDataServiceClient();
ServiceReference1.PRODUCT[] prod = oClient.GetProducts(DivisionCode, null, null, null, null, null, null, null);
return prod;
}
Web.Cofig
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="basicHttp" allowCookies="true"
maxReceivedMessageSize="20000000"
maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32"
maxArrayLength="200000000"
maxStringContentLength="200000000"/>
</binding>
<binding name="WSHttpBinding_IMasterDataService" />
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://almhosrwfebpm01.almaraigroup.local:8524/AlmaraiDataService.svc" binding="wsHttpBinding" bindingConfiguration="basicHttp" contract="ServiceReference1.IMasterDataService" name="WSHttpBinding_IMasterDataService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
My data type is JSON
Sample data Coming from Web Services.
Error Message
{"Message":"An attempt was made to call the method \u0027GetProduct\u0027 using a POST request, which is not allowed.","StackTrace":" at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
Solution 1:[1]
Add this instead of [WebMethod]
[WebMethod(EnableSession = true)]
[System.Web.Script.Services.ScriptMethod(UseHttpGet = true, ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public static ServiceReference1.PRODUCT[] GetProduct(string DivisionCode)
{
ServiceReference1.MasterDataServiceClient oClient = new ServiceReference1.MasterDataServiceClient();
ServiceReference1.PRODUCT[] prod = oClient.GetProducts(DivisionCode, null, null, null, null, null, null, null);
return prod;
}
Solution 2:[2]
change the " data: JSON.stringify(params)," Try this:
data: "{obj:" + JSON.stringify(params ) + "}",
In the web method: 1-change the return type to void. 2-Add this code :
JavaScriptSerializer js = new JavaScriptSerializer();
Context.Response.Write(js.Serialize(prod));
this article should help: https://www.c-sharpcorner.com/blogs/how-to-retrieve-data-using-ajax-in-asp-net
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Pakawat Smutkun |
| Solution 2 |


