我正在试图弄清楚如何确定这个ajax webmethod POST的baseUrl应该是什么。
根据此 the FML github repository,baseUrl是Sitefinity项目文件夹的路径。
在我的情况下,路径应该是:
“C:\ inetpub \ Website \ Public”但此路径的格式与“MyWebForm.aspx / WebMethod”的格式不同
这似乎是一个简单的问题,但在我测试之前,我想确保我做的正确。
我很感激任何建议和反馈。
提前致谢。
function buttonClick(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: baseUrl + "MyWebForm.aspx/WebMethod",
data: 1,
contentType: "application/json; charset=utf-8",
dataType: "json",
success:
function() {
alert('Success');
},
error:
function (msg) {
alert('Sorry, there was an error, please try again later');
}
});
}
答案 0 :(得分:1)
如果您的SitefinityWebApp根目录下有.aspx文件,则该地址可以是相对的,然后基本URL将是" /"。我建议把它放到像#" WebMethods"然后它将是" / WebMethods"。我建议自己使用MVC控制器,甚至添加WebAPIController,你必须在引导程序中添加一个自定义路由,在下面添加到你的Global.asax。创建一个控制器,现在你可以调用/ api / MyController / GetSomeStuff或/ api / MyController / PostSomeStuff
protected void Application_Start(object sender, EventArgs e)
{
Bootstrapper.Initialized += new EventHandler<ExecutedEventArgs> (OnBootstrapperInitialized);
}
private static void OnBootstrapperInitialized(object sender, Telerik.Sitefinity.Data.ExecutedEventArgs e)
{
if (e.CommandName == "Bootstrapped")
{
RegisterRoutes(RouteTable.Routes);
}
}
private static void RegisterRoutes(RouteCollection routes)
{
routes.Ignore("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
答案 1 :(得分:0)
url : window.location.protocol + "//" + window.location.host + "/WebServices/MyWebForm.aspx/WebMethod";
在URL字段中尝试