【问题标题】:Call WebService method by jQuery通过 jQuery 调用 WebService 方法
【发布时间】:2013-04-26 06:25:01
【问题描述】:

我正在尝试通过 jQuery 调用 WebService 方法,但它不起作用。

代码如下...

jQuery

$.ajax({
    type: "POST",
    data: "{}",
    dataType: "json",
    url:'test.asmx/GetSurvey',
    contentType:"application/json;charset=utf-8",
    success: function(data) {
        $("#Span1").html(data.d);
    }
});

test.asmx (WebService) 代码如下:

[WebMethod]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetSurvey()
{
    return "Question: Who is Snoopy?";
}

可能是什么问题?

【问题讨论】:

  • 在成功函数中使用 from console.log(data) 来检查您的服务响应。它可以帮助您
  • 如何添加 console.log(data)

标签: jquery web-services


【解决方案1】:

这里是jquery代码:

$.ajax({
type : "POST",
data : "",
dataType : "json",
url : 'test.asmx/GetSurvey',
contentType : "application/json;charset=utf-8",
success : function(data) {
    $("#Span1").html(data);
 }
});

您已从某个位置复制粘贴代码,但未删除 url 中的“enter your code” 所以这就是问题所在..

已编辑:

url: '<%=ResolveUrl("~/test.asmx/GetSurvey") %>',

尝试以这种方式通过路径

【讨论】:

  • 请求 URL:localhost:6276/ExaminationSystem/test.asmx/GetSurvey 请求方法:POST 状态码:500 内部服务器错误
  • 表示路径不正确,请检查您的路径“test.asxm/GetSurvey”是否正确?
  • 是的......因为 test.asmx 在我的项目的根目录上......命名为考试系统我将它添加到 root..并通过了 url url:'.. /test.asmx/GetSurvey',
  • 网址:'../test.asmx/GetSurvey',
  • 在cs中我可以很容易地调用方法......但我想从webservice调用它......所以我尝试这个简单的例子,但它不是wotking.....
【解决方案2】:

在你的 ajax 调用中

$.ajax({
type: "POST",
data: "{}",
dataType: "json",
url:'test.asmx/GetSurvey',
contentType:"application/json;charset=utf-8",
success: function(data) {
console.log(data);
    $("#Span1").html(data.d);
}
});

您可以在控制台选项卡中使用 Chrome 开发工具查看此日志。 此外,您可以使用网络选项卡中的 Chrome 开发工具监控您的请求/响应

查看有关 Chrome 开发工具的更多信息Chrome Dev Tools: Networking and the Console

【讨论】:

【解决方案3】:

1) "Question: Who is Snoopy?" 不是 JSON。

2) data.d 没有引用任何内容。

3) enter code here 是垃圾,删除它。

4) 如果您没有要发送的数据,那么您可以在 AJAX 选项中省略 data"{}" 无论如何都是错误的参数定义方式。

阅读this,了解如何发送/返回 JSON 并正确使用它。

【讨论】:

  • 1) 我的代码正在返回字符串..所以 json 是正确的...我之前也使用过...2)data.d 将返回“问题:谁是史努比?” 3)“在这里输入代码”是为了让用户理解它不是我写的......当我发布这个问题时它会自动写下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 2018-01-23
相关资源
最近更新 更多