Web服务C#返回未定义的值

时间:2019-07-10 11:24:53

标签: javascript c# ajax

我尝试了一个简单的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服务获取结果的正确格式是什么。

谢谢

1 个答案:

答案 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);
        }
    });