asp.net 发送的ajax 调用不到WebMethod ,调试的时候就没进入该方法内。求各位大仙帮忙看看,谢谢了……
前台代码如下:所在页面op_ckbm.aspx
$.ajax({
type: 'post',
url: 'op_ckbm.aspx/dw',
data: "{'bm_id':'" + $("#bm_id").val() + "','bm_mc':'" + $("#bm_mc").val() + "'}",
contentType: "application/json; charset=utf-8",
datatype: "json",
success: function(data) {
document.getElementById("jsz").innerHTML = data.d;
},
error: function() {
}
});
后台代码如下:所在页面op_ckbm.aspx 代码文件op_ckbm.aspx.cs
[WebMethod]
public static string dw(string bm_id, string bm_mc)
{
string dw_mc = "";
DataTable bm_table = DBHelper.DataTables("select dw_mc from bm_view_join_dw_view where bm_id='" + bm_id + "' and is_vaild=1 and is_current=1");
string dw_id = "";
if (bm_table.Rows.Count > 0)
{
dw_mc = bm_table.Rows[0][0].ToString() + ";" + bm_mc;
}
return dw_mc;
}
op_ckbm.aspx??
这是webservice地址吗?
恩,是,这个是请求的地址,[WebMethod] 的地址
@阳光满天下: 后缀名应该是 asmx 吧
@菜鸟程序猿: 现在这个是WebMethod,不是webservice,这个可以的,但是就是不知道哪错了,其他的都可以调用到
@阳光满天下: 你用FireBug看一下,有没有请求到那个地址,有没有其他错误信息
function FindResult(result){
PageMethods.txtRoadSearchChange(
$("#ctl00_ContentPlaceHolder1_UCCSB091_ddlCity").val(),
$("#ctl00_ContentPlaceHolder1_UCCSB091_ddlArea").val(),
$("#ctl00_ContentPlaceHolder1_UCCSB091_txtRoadSearch").eq(0).val(),
function(result){
if(result!="")
$("#ctl00_ContentPlaceHolder1_UCCSB091_ddlRoad").val(result);
}
);
}
[WebMethod]
public static string txtRoadSearchChange(string strCountyValue, string strCityValue, string TxtRoadSearch)
{
if (TxtRoadSearch.Trim() != "")
{
string RoadSearch = new CountryRoadDal().GetFirstCodeName(
strCountyValue,
strCityValue,
TxtRoadSearch);
if (!string.IsNullOrEmpty(RoadSearch))
return RoadSearch;
}
return "";
}
编辑器加载中...
谢谢了,知道什么地方出错了,
var url1 = "user/op_ckbm.aspx?&bm_mc=" + bm_mcc;
//alert(url1);
$.setupJMPopups({
screenLockerBackground: '#003366',
screenLockerOpacity: '0.3'
});
$.openPopupLayer({
name: 'usr_select',
width: 450,
url: url1
//"user/op_ckbm.aspx?&bm_mc="+bm_mc
});
用了这个插件,弹出窗口后再用ajax调用,路径写错了,没有请求到那个地址,非常感谢……
//后台代码
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
//前台代码
$.ajax({
type: "post",
datatype:"json",
url: "ajax.aspx/Hello",
contentType: "application/json",
success: function (result) {
alert(result.d);
}
});
.net 3.5可以直接调用,如果是.net 2.0的话.要在web.config中的 的 <system.web> 节点下添加
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
以上代码经过本人测试可行
没人知道原理吗?没人知道原理吗?很常见的问题呀!