首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jQuery调用c# webservice以获得返回值

如何使用jQuery调用c# webservice以获得返回值
EN

Stack Overflow用户
提问于 2010-05-24 14:33:52
回答 2查看 2.9K关注 0票数 2

我希望使用jQuery调用名为c.ashx的c# web服务,该服务检查用户名是否有效,并将错误消息作为字符串返回。

如果c# webservice的返回值是一个字符串值,那么数据:和内容类型应该放什么?

代码语言:javascript
复制
 jQuery.ajax({
 type: "GET",
 url: "/services/CheckUserName.ashx",
 data: "",
 contenttype: "",

 success: function (msg) {
     alert("success");

 },
 error: function (msg, text) {
     alert(text);
 }
 });

我已经创建了一个.asmx文件,但是它不会被jQuery调用。下列内容正确吗?

代码语言:javascript
复制
jQuery.validator.addMethod("UsernameCheck", function (value, element) {
    jQuery.ajax({
        type: "POST",
        url: "/services/CheckUsername.asmx?CheckUsername",
        data: '{ "context": "' + jQuery("#username").value + '"}',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',

        success: function (msg) {
            alert("success");

        },
        error: function (msg, text) {
            alert(text);
        }
    });
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-24 15:42:49

数据应该包含在web服务中调用的方法的参数。但是,ashx扩展是针对Handler的,对于这个场景来说,这不是一个好的选择。web服务应该通过使用来代替。

因此,如果您正在调用/services/LoginServices.asmx?CheckUserName,而CheckUserName.asmx有一个webmethod ValidateUser,如

代码语言:javascript
复制
public string ValidateUser(string username)

那么,用于data的jQuery属性将是

代码语言:javascript
复制
data: '{ "username": "' + usernameValue + '"}'

您的contentType应该是application/json; charset=utf-8dataType应该是"json"

注意,您不会调用/services/CheckUserName.asmx,web服务中的方法的名称必须附加到webservice url,/services/LoginServices.asmx?CheckUserName

此外,您还需要将type更改为"POST"

下面是一个完整的例子:

代码语言:javascript
复制
$.ajax({
type: 'POST',
url: 'LoginServices.asmx/CheckUserName',
data: '{"username": "' + usernameValue + '"}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
    alert("Result: " + msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert("Error: " + textStatus);
}});

希望这能有所帮助

票数 5
EN

Stack Overflow用户

发布于 2010-05-26 08:05:54

jQuery代码没有工作,因为它没有调用webservice。我通过创建一个HTTP处理程序类并将用户名传递给它来修正这个问题。我将data的值更改为以下内容,并传递用户输入的用户名:

代码语言:javascript
复制
data: "username=" + jQuery("#username").val(),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2897731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档