日期:2014-05-16  浏览次数:20699 次

ajax调用后台webservice的问题
我在js中用jquery调用后台的webservice, 一直进error, readystate是4. 后台webservice的断点也未捕获,应该是没进去. 但是地址没问题.
JScript code

$(document).ready(function () {
    $.ajax({
        url: "AppInterface/API.asmx/HelloWorld",
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: "{id:1}",
        success: function (json) {
            alert(json);
        },
        error: function (x, e) {
            alert(x.readyState);
        }
    });
})





C# code

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
[System.Web.Script.Services.ScriptService]
public class API : System.Web.Services.WebService {

    public API () {
        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
        //进行session验证
    }

    [WebMethod]
    public string HelloWorld(string x)
    {
        string s = "123";
        return s;
    }



------解决方案--------------------
你用firebug或 chrome开发人员工具 网络选项看一下请求的详细信息

还有

asp.net webservice 是以 xml为基础的,没有json
------解决方案--------------------
$.ajax({
type:"POST",
url:"<%=path%>/account/deleteAccount.do",
data:"accountId="+ids,
dataType:"json",
success:function(data){
//设置所有的数据均不被选中
datagrid.datagrid('unselectAll');
//重新加载当前页面的数据
datagrid.datagrid('reload');
//刷新左侧部门树信息
window.parent.reflushTree();
$.messager.show({
title : '提示',
timeout : 5000,
msg : '删除成功!'
});
}
});

我记得 ajax url 后边要有。do的