Web サービスの呼び出しが失敗するのはなぜですか? ボタンをクリックすると、jquery を使用して asp.net ページから Web サービスが呼び出されます。Web サービスは JSON 文字列を返します: {"Message":"Hello World"}
. 現時点では、返されたメッセージに対して何もしようとはしていません。エラー関数を通過せずに Web サービスを呼び出そうとしているだけです。コードについては、以下を参照してください。
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