当前位置: 首页 > 面试题库 >

添加FriendlyUrls时,jQuery ajax调用不适用于ASP.Net Web窗体

怀洛华
2023-03-14
问题内容

在没有为ASP.Net Web Forms项目打开FriendlyUrls的情况下,以下代码可以正常工作:

<script type="text/javascript">
    $(document).ready(function () {

        $.ajax({
            url: '/Default.aspx/GetData',
            type: 'POST',                
            beforeSend: function( xhr ) {
                xhr.setRequestHeader("Content-type", 
                     "application/json; charset=utf-8");
            },
            success: function (result) {
                var resultData = (result.d? result.d : result);
                alert(resultData);
            },
            error : function(){
                alert('error');
            }
        });

    });
</script>

这是页面方法(WebMethod)的服务器端代码:

[System.Web.Services.WebMethod]
public static string GetData()
{                        
    return "Hello";
}

在浏览器中加载页面时,可以看到响应为{ "d" : "Hello" },这是预期的结果。

现在,如果使用NuGet包Microsoft.AspNet.FriendlyUrls添加友好的url
,则相同的代码将不起作用。当FriendlyUrls打开时,我将jquery ajax调用中的URL更改为 “ / Default /
GetData”
,但随后我没有收到预期的结果。而是我收到了Default.aspx页面的html。

我正在努力找出为什么这行不通,我唯一改变的就是为FriendlyUrls添加了nuget包!

http://encosia.com/using-jquery-to-direct-call-aspnet-ajax-page-
methods/

请注意,给定答案中的所有相关帖子均不使用FriendlyUrls。我还看到了一些答案,表明jquery
ajax调用可以与MVC,WebAPI一起使用,但是我的项目仅限使用ASP.Net Web窗体。

我在这里做错了什么还是错过了什么?有没有人在他们的项目中遇到过相同的情况?如果是这样,请您回答如何解决?多谢您抽出宝贵的时间阅读和回复。


问题答案:

因此,最终我对项目进行了以下更改,从而解决了我的问题:

  1. 将FriednlyUrls添加到项目中。

  2. 删除 RegisterRoutes 方法中设置 App_Start / RouteConfig.cs中的settings.AutoRedirectMode属性的

(请注意,将其设置为RedirectMode.Permanent或RedirectMode.Off不适用于我)

  1. system.web 部分下的web.config中添加 授权 __

    <authorization>
    <allow users="*" />
    



 类似资料:
  • 问题内容: 我正在尝试学习Javascript。在这里,我对以下代码感到困惑。 当我放入函数时,它出了问题。例如, 但是,,是工作。为什么不工作?请帮我。提前谢谢 问题答案: 一个或两个变量是字符串而不是数字。这使do字符串串联在一起。 其他算术运算符将对字符串进行转换。 将字符串转换为数字的快速方法是使用一元运算符。 …或使用您的变量:

  • 问题内容: 我开始学习node.js,现在我只是想用node执行我的旧无节点应用程序。在这个应用程序中,我有一个html页面,其中的正文调用了onload js函数。工作正常。 现在我有一个节点应用程序:app.js,很简单: 在.html中,我仍然有: 但我要加载的功能不再加载。 有什么线索吗? 谢谢 问题答案: 您没有在问题中提供很多信息,但是根据您提供的信息,我几乎没有什么建议: 意见建议

  • 问题内容: 我本周刚开始使用AngularJS进行一个新项目,所以我必须尽快加快速度。 我的要求之一是动态添加html内容,并且该内容可能带有click事件。 因此,我在下面的代码Angular代码中显示了一个按钮,当单击该按钮时,它会动态添加另一个按钮。单击动态添加的按钮,应该添加另一个按钮,但是我无法让ng- click来处理动态添加的按钮 工作代码示例在此处 http://plnkr.co/

  • 问题内容: ember new foo-proj cd foo-proj ember s 现在服务器正在运行。但是,当我编辑文件时,例如foo-proj / app / index.html live-reload不会重新加载 ! 我在跑: 节点v0.10.31 npm 1.4.23 我一直在#ember-cli频道问问题,但是没有运气。我似乎是唯一遇到此问题的人。 问题答案: 终于 开始进行实时

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。