在我的asp.net webapp中,我正在使用本地Web服务来检索数据。系统是一个弹出窗口(实际上是另一页) 所以这是jquery代码:
$(document).ready(function () {
$('#ddlToBind').change(function () {
var parameter = "{'aId':'" + $("#ddl").val() + "'}";
$.ajax({
url: "../WebServicesASMX/PMywebserv.asmx/Test",
data: parameter,
dataType: "json",
type: "POST",
contentType: "application/json",
success: function (data) {
$('#ddlToBind>option').remove();
for (var i = 0; i < data.d.length; i++) {
$("#ddlToBind").append("<option value='" + data.d[i].Id + "'>" + data.d[i].Name + "</option>");
};
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
当你在网站的根目录时工作正常,一旦你在其他页面中启动脚本,路径就不正确,因此没有达到.x
我尝试用代字号“〜”代替../但它不起作用.. url: "~/WebServicesASMX/PMywebserv.asmx/Test"
是否有可能在我的jquery脚本中指定亲戚路径?
答案 0 :(得分:1)
VirtualPathUtility拯救!
url: "<%= VirtualPathUtility.ToAbsolute("~/WebServicesASMX/PMywebserv.asmx/Test") %>",
请参阅Rick Strahl撰写的这篇文章:http://www.west-wind.com/weblog/posts/2009/Dec/21/Making-Sense-of-ASPNET-Paths
请注意,要使其工作,脚本需要位于由ASP.NET处理的页面中,例如aspx,ascx,MVC查看。如果您的脚本位于普通的js文件中,则需要移动它,或者引用您在ASP.NET代码中其他地方定义的javascript全局变量。
答案 1 :(得分:1)
使用
<%= ResolveUrl("~/WebServicesASMX/PMywebserv.asmx/Test") %>