我尝试了一个简单的Web服务(只是测试该值是否会在JavaScript代码上填充)。我尝试了一个非常简单的代码段,但随后返回“ undefined”。请指教。我尝试了一些解决方案,但没有运气。
在asmx文件上有一个简单的代码
[WebMethod]
public string HelloWorld(string param1, string param2)
{
return "Hello World" + param1 + ":" + param2;
}
这是我的JavaScript上的代码。
$.ajax({
url: "SimpleService.asmx/HelloWorld",
type: "POST",
data: {
'param1': 'value1',
'param2': 'value2'
},
success: function(response) {
alert(response.d);
}
});
我尝试使用response.text和response.value来获取结果,但是我仍然得到未定义的值。
success: function(response) {
alert(response.text);
alert(response.value);
}
在我的asmx文件中, 我也尝试将[WebMethod]替换为。
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld(string param1, string param2)
{
return "Hello World" + param1 + ":" + param2;
}
请告知从我的Web服务获取结果的正确格式是什么。
谢谢
答案 0 :(得分:0)
您应按如下所示将[ScriptService]
属性添加到服务类中
[ScriptService]
public class SimpleService : System.Web.Services.WebService
然后,更改您的ajax调用。放置contentType并按如下所示更改数据:
$.ajax({
url: "SimpleService.asmx/HelloWorld",
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{ param1: 'value1', param2: 'value2' }",
success: function (response) {
alert(response.d);
}
});