jQuery+;WebMethod+;UrlRewriting:如何区分参数和服务器方法名
我的ASP.NET网站将类似URL的URL转换为参数id为1234的“播放器”请求页面 在该页面上,我需要向该页面上的“GetData”方法发出web请求。我想使用jQuery执行请求。我找到的所有教程(例如)都建议在“$.ajax”的“URL”参数中传递URL/方法名jQuery+;WebMethod+;UrlRewriting:如何区分参数和服务器方法名,jquery,asp.net,webmethod,Jquery,Asp.net,Webmethod,我的ASP.NET网站将类似URL的URL转换为参数id为1234的“播放器”请求页面 在该页面上,我需要向该页面上的“GetData”方法发出web请求。我想使用jQuery执行请求。我找到的所有教程(例如)都建议在“$.ajax”的“URL”参数中传递URL/方法名 $.ajax({ type: "POST", url: "PageName.aspx/MethodName", // in my case that will be ... what? data: "{}", c
$.ajax({
type: "POST",
url: "PageName.aspx/MethodName", // in my case that will be ... what?
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Do something interesting here.
}
});
问题是,如果我指定“player/1234/GetData”,那么请求将执行到“player”页面,但ASP.NET不会调用GetData方法
我是否应该在此页面上实现自定义逻辑并调用“GetData”以执行web请求?如果是,我如何确定该请求是对WebMethod执行的
或者我应该以如下方式提供“普通”url
我可能错过了什么?jquery是否允许在单独的字段中指定“方法名称”?或者我应该配置我的网站来正确处理这个问题
请告知。欢迎任何意见 不知道如何解决这个问题。。所以我向web服务发出请求(URL包含绕过URL重写的.asmx)
如果您知道如何解决原始问题-请提供建议 Budda,我看到你的问题时也遇到了同样的问题 我的解决方案可能不是最好的,就是给我的电话添加一个假分机,在我的例子中是“jq”,如下所示:
url: "<%: ResolveUrl("~/PagePath/PageName.aspx") %>/WebMethod.jq"
<add input="{R:2}" negate="true" pattern="\.jq" />
如果您有任何其他规则,则必须使用一个条件跳过它们,例如,如果您使用一个规则删除扩展,则可能需要在规则的条件中添加如下内容:
url: "<%: ResolveUrl("~/PagePath/PageName.aspx") %>/WebMethod.jq"
<add input="{R:2}" negate="true" pattern="\.jq" />
我正在使用{R:2}
,因为我发现URL重写模块没有将WebMethod.jq
作为URL的一部分,如果它找到aspx
扩展名。{R:2}
将用于我的模式,但它可能会因您的规则模式而改变
仅仅使用Page WebMethod听起来可能太复杂了,但是在初始配置之后,您只需要为脚本中的调用添加.jq
扩展名
希望这对你有帮助 好吧,这并不能解决你的问题,但是如果有人在帖子上遇到同样的问题,我会把答案留在那里。