你能帮助我找出为什么我的$ .ajax调用HelloWorld webservice失败了吗?

时间:2011-04-01 08:50:04

标签: asp.net web-services jquery

我正在尽我所能,但无法弄清楚为什么我没有得到这么简单的网络服务的成功回应;你能看看吗告诉我,我错过了什么,请问?

每次只调用错误函数,Fiddler说我有HTTP响应500.

谢谢!

附加说明: 我检查了Fiddler,它说: 找不到以下网址:/JQuery-Recepie/Chapter16-Ajax/MyWebService.asmx。但为什么?!?

我的WebService类:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class MyWebService : System.Web.Services.WebService {

    public MyWebService () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }

}

我的JavaScript绑定到按钮的click事件,该事件调用webservice:

function jqHelloCall(){

        $.ajax({ type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "MyWebService.asmx/HelloWorld",
        data: "{}",
        dataType: "json",
        success: function(msg){
                            alert(msg==null);
                            alert(msg.d);
                                    },
        error:      function(){
                            alert('error'); 
                                }

             }); }

3 个答案:

答案 0 :(得分:0)

使用Firefox中的Firebug查看IIS发送的响应。在Net选项卡上的Firebug中,您只能过滤Ajax请求(XHR)。当然,您会在IIS将发回的响应主体中找到有关服务器异常的所有详细信息。

答案 1 :(得分:0)

  

pencilCake:我检查了Fiddler,它说:在/JQuery-Recepie/Chapter16-Ajax/MyWebService.asmx找不到网络服务。但是为什么?!?

因为网络方法应该是STATIC

[WebMethod]
public static string HelloWorld() {
    return "Hello World";
}

答案 2 :(得分:0)

将scriptMethod属性添加到服务方法...

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld() {
        return "Hello World";
    }