Why does the Web Service call fail?
On a button click, a web service is called from a asp.net page using jquery. The web servcie returns a JSON string: {"Message":"Hello World"}. I'm not trying to do anything with the returned message at this time. I'm simply trying to call the web service without falling through the error function. Please see below for the code:
The Web service:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Serialization;
using System.Web.Script.Services;
using System.Runtime.Serialization.Json;
namespace EForm.Services
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class PeopleWebService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void HelloWorld()
{
JavaScriptSerializer js = new JavaScriptSerializer();
var jsonData = new
{
Message = "Hello World"
};
string retJSON = js.Serialize(jsonData);
Context.Response.Write(retJSON);
}
}
}
The asp.net page:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.7-vsdoc.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.7.js" type="text/javascript"></script>
<script type="text/javascript">
function getUserName() {
$.ajax({
url: "http://localhost:1211/Services/PeopleWebService.asmx/HelloWorld",
cache: false, // don't cache results
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{}",
success: function () {
alert("worked");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("Status: " + xhr.status);
alert("Response Text: " + xhr.responseText);
alert("Thrown Error: " + thrownError);
}
});
return false;
}
$(document).ready(function () {
$("#Search").click(getUserName);
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="Search" runat="server" Text="Search" />
</form>
</body>
</html>
The Return Errors
FireFox 24.0
Status: 0
Response Text:
Thrown Error:
Opera 17.0
Status: 0
Response Text:
Thrown Error:
Chrome 30.0.1599.69 m
Status: 0
Response Text:
Thrown Error:
IE 10
Status: 200
Response Text: {"Message":"Hello World"}{"d":null}
Thrown Error: SyntaxError: Syntax error