JQUERY Ajax中的相对路径和绝对路径

4
$.ajax(
      {
    type: "GET",                    
    url: 'Home/GetMsg',                 
    success: function (result) {        },
    error: function (req, status, error) {}
     });    

默认情况下,URL采用相对路径来获取Home/GetMsg。我从不同的控制器/视图中调用此函数,这会干扰URL。 如何在这里指定绝对和相对路径。我尝试过使用URL:'http://abc.com/Home/Getmsg',但仍然无法正常工作。

默认情况下,URL采用相对路径来获取Home/GetMsg。我从不同的控制器/视图中调用此函数,这会干扰URL。 如何在这里指定绝对和相对路径。我尝试过使用URL:'http://abc.com/Home/Getmsg',但仍然无法正常工作。

2个回答

8

使用帮助程序:

url: '@Url.Action("GetMsg", "Home")',  

如果您的代码在无法使用服务器端帮助程序的单独JavaScript文件中,您可以使用助手函数通过 HTML5 data-* 属性在某个现有的 DOM 元素上生成 URL:

<div id="foo" data-url="@Url.Action("GetMsg", "Home")">Foo</div>

然后在你的js中:

url: $('#foo').data('url'), 

3

由于您正在使用MVC,因此您可能正在寻找 Url.Action 助手:

@Url.Action("GetMsg","Home")

此外,如果你将在JavaScript中使用路径,那么使用带路径的隐藏元素可能是个好主意,这样你就可以在外部使用JavaScript了。例如:
@Html.Hidden("GetMsgPath",Url.Action("GetMsg","Home"))

$.ajax({
    type: "GET",                    
    url: $("#GetMsgPath").val(),                 
    success: function (result) {        },
    error: function (req, status, error) {}
}); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接