I am trying to use jQuery to directly call ASP.NET AJAX page methods. I’m using encosia.com as a reference. My inline javascript is
<script type="text/javascript">
$(document).ready(function() {
// Add the page method call as an onclick handler for the div.
$("#Result").click(function() {
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Replace the div's content with the page method's return.
$("#Result").text(msg.d);
}
});
});
});
</script>
<div id="Result">Click here for the time.</div>
with my webmethod being
<WebMethod()> _
Public Shared Function GetDate() As String
Return DateTime.Now.ToString()
End Function
I would use FF and check POST sent, but since where I’m at currently only has IE 7 this is a little hard to do. Other relevent information, ASP.net 2.0. Does anyone know what I’m doing wrong?
Update
web.config – pre-existing still not working
<httpModules>
<remove name="FormsAuthentication" />
<remove name="PassportAuthentication" />
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>
Since you’re using ASP.NET 2.0, you’ll need to install the ASP.NET AJAX Extensions, like Joe Enos mentioned. I have a bit more info on the necessary configuration work here: http://encosia.com/asmx-scriptservice-mistakes-installation-and-configuration/
Additionally, the
.dwrapper around the response is an addition that didn’t come until ASP.NET 3.5. So, even if you’ve got everything else working right, yourmsg.dwill beundefinedin ASP.NET 2.0. Omit the.dand just make that: