I have the following JQuery code that worked perfect in C#/Asp.net 2.0 to call a page method in the default.aspx page. Now I am trying to call a shared page method in VB.Net and the page method is not firing, I believe because of security or it is not finding it.
The page that this shared vb method is in doesn't allow anonymous access, so I was thinking that is the problem or it is a path problem to finding the method. I am just guessing here. In my C# test app the static webmethod was in the default.aspx page with no security. Thanks for any advice or help!
$.ajax({
type: "POST",
url: "Orders.aspx/GetMailPieceGroupsByAdFundTypeId",
data: myDataToSend,
contentType: "application/json; charset=utf-8",
dataType: "json",
//error: function(XMLHttpRequest, textStatus, errorThrown) {alert(errorThrown); this;},
success: function(data, textStatus){alert(success);mailPieceGroups = eval('(' + data + ')'); startSlideShow(mailPieceGroups); }
});
My issue was the path provided was not correct which caused the .ajax call not to be able to locate the method to call it.
This is correct for my scenario:
url: "../Orders.aspx/GetMailPieceGroupsByAdFundTypeId",
Related
I have tried to see if there is anything on this great site for this (and there probably is), so I am sorry if I have missed it.
Anyway, I am calling a WCF endpoint using jQuery Ajax under ASP.Net.
The Web service call is working fine in Fiddler and returns the following data:
{"d": {"__type":"ProcessedTotals:#","DailyError":"0","DailyProcessed":"0","TotalError":"48","TotalProcessed":"70"}}
This is my code
function GetData() {
alert('Ajax Start');
$.ajax({
dataType: "jsonp",
data: "{}",
contentType: "json",
url: "http://localhost/abc123/WebManagement.svc/ReturnTotals",
success: (function (data) {
alert(data[0].TotalProcessed);
//$("#TotRecs").html(data.d.TotalProcessed);
//$("#TotErr").html(data.d.TotalError);
//$("#DayTot").html(data.d.DailyProcessed);
//$("#DayErr").html(data.d.DailyError);
}),
error: function (xhr, status, error) {
alert("FAILED:" + status);
}
})
alert('Ajax End');
}
Whilst debugging in Firefox the line that causes the error is SUCCESS:
I know that it is using JSONP, as I am having to access the data from a different website.
Thanks
Paul
$.ajax({
dataType: "jsonp",
url: "http://localhost/abc123/WebManagement.svc/ReturnTotals",
success: (function (data) {
console.log(data);
})
});
You were doing some weird stuff there. Trying to send an empty object literal along with the call, which doesn't make any sense. Also, your error callback won't work with a jsonp request. Try the above, it should work fine. If not, please mention the error that you're getting.
I have been working with ajax and there has been no problems below is how my ajax post code look like:
$.ajax({
type: "POST",
url: '<%=ResolveUrl("TodoService.asmx/CreateNewToDo")%>',
data: jsonData,
contentType: "application/json; charset=utf-8",
datatype: "json",
success: function () {
//if (msg.d) {
$('#ContentPlaceHolder1_useridHiddenField').val("");
$('#ContentPlaceHolder1_titleTextBox').val("");
$('#ContentPlaceHolder1_destTextBox').val("");
$('#ContentPlaceHolder1_duedateTextBox').val("");
alert('Your todo has been saved');
// }
},
error: function (msg) {
alert('There was an error processing your request');
}
});
However, the problem came up when I try to get the url to a webservice that is located in a class library within the same solution.
This ASP.Net
says If you want to put the webservice in the classlibrary, you could try placing the Webservice.asmx.cs file in the class library and place the Webservice.asmx file in the web application project, and then using jquery to consume it in the .aspx page
If it's a different application than yours that's considered an XSS (Cross-site scripting) and it is not allowed.
You could however wrap the call to the external service in your own application (let's say in a REST service) and just call your service from jquery
I am trying to consume a .NET webservice with AJAX and want a JSON response. Everything works fine. I have used fiddler and get the appropriate Json returnet. also using the plain URL in the browser gives the appropriate XML.
Even using PHP Curl gives me the right JSON in response but when i am trying to use AJAX i get a "500 Internal Server Error".
Any help appriciated, Thanks.
<script>
$(document).ready(function() {
$.ajax({
type: "POST",
url: "http://localhost:9000/APIs/BuyVoucherService.asmx/HelloWorld",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
alert(data);
},
error: function(data){
alert(data);
}
});
});
</script>
It seems that you have omitted a data definition in your request, try to add something like this:
data: "{}",
The problem i have realized is that this wont work because of cross domian issues. the solution to get the AJAX call to work with a cross domain solution is to use JSONP. http://www.json-p.org/
I am using jquery ajax method to invoke a webmethod upon clicking a 'span'.This is webmethod is in one of my aspx pages and I am invoking it from the master page using the following code.
$(document).ready(function(){
$("#btn").click(function() {
$.ajax({
type: "POST",
url: "Default.aspx/removedata",
data:"{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success:function(msg) {
$("li#search").removeClass('current');
$("li#search").addClass('hide');
$("#tabnew").addClass('hide');
window.location="Result.aspx";
},
error:function(xhr, status, error) {
alert("error");
//var err = eval("(" + xhr.responseText + ")");
// Display the specific error raised by the server
//alert(err.Message);
console.log(xhr.statusText);
}
});
});
});
when I click the span I can see the webmethod getting invoked(by debugging ),but even before the webmethod starts executing I get the alert 'error' and I see (an empty string) message being logged into the firebug console.
As far as I know the 'error' function gets executed only if the ajax request fails.But I can see the webmethod getting executed.I do not understand why the error function is executing even then.
Could someone please help me with this.
Thanks
The error handler is executed if the server side script returns an error code different than 200. You could use FireBug to inspect what exactly is happening under the covers.
I have this AJAX code, but it doesn't seem to throw the 'alert' method. Instead, nothing happens. I looked at it with Fiddler and got this error message:
{"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""}
I'm trying to call a web method in the code-behind called MyWebMethod:
$.ajax({ type: "POST",
url: "Test.aspx/MyWebMethod",
data: "{" + username + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function() {
alert("success");
},
fail: function() {
alert("Fail");
}
});
The web method worked fine when I had a script manager on the page, but I want to remove the script manager and thought that using AJAX would be the best way.
Thanks
You have custom errors enabled in the web.config. Therefore, the exception returned will be generic (mostly blank) and the same every time. This makes it difficult to debug.
To see the real exception, temporarily disable custom errors. Here is how to do that for web services only, if you need that granularity.
I think if you change fail to error, you'll get the second alert box.
[Edit] I think if you then change
data: "{" + username + "}"
to
data: "{ 'username': '" + username + "' }"
you'll get the first alert, although it's hard to know that without seeing the service you're calling.