【问题标题】:Web service C# returns undefined valueWeb 服务 C# 返回未定义的值
【发布时间】:2019-11-20 00:31:28
【问题描述】:

我尝试了一个简单的 Web 服务(只是测试该值是否会 p0pulate 在 JavaScript 代码上)。我尝试了一个非常简单的 sn-p 但随后它返回“未定义”。请指教。我尝试了一些解决方案,但没有成功。

这里是一个关于 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;
}

请告知从我的网络服务获取结果的正确格式是什么。

谢谢

【问题讨论】:

标签: javascript c# ajax


【解决方案1】:

您应该将[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);
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2016-03-20
    相关资源
    最近更新 更多