我只是想测试一个简单的web服务的简单ajax调用。我正在使用.net 4,iis 6.我的网络服务代码看起来像这样......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;
namespace ABCNamespace {
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
return new JavaScriptSerializer().Serialize("Hello World");
}
}
}
我的电话看起来像这样
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "../../MyService.asmx/HelloWord",
data: "{}",
dataType: "json",
success: function () { alert('done'); },
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
我一直得到500错误,仔细看后,我得到一个字符串而不是json数据。我认为如果纠正这一点,它将解决我的问题。但是,我无法让它返回json数据。
这是通过调用我的webmethod
进行的响应检查 <?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/"> "Hello World" </string>
注意:请忽略我在我的网址中使用../../而不是resolveURL这一事实。这仅用于快速简单的测试目的。我也玩web.config处理程序,没有运气。不确定我错过了什么......