• Bug笔记:诡异的$.ajax


    用$.ajax用POST方式提交请求到一个ASPX页面执行后台代码时,发生一桩诡异的事情。。。

    假设后台代码写在Test.aspx及Test.aspx.cs中。如用:

    $.ajax({
        url:"Test.aspx",
        type:"POST",
        data:{
            parameter:value
        },success:function(response){
                //Call back function
        }
    });

    通过Console控制台可以看到,在运行success的Callback时,会一下子执行两个请求。先是“POST”,后是“GET”。第一个“POST”,通过data正常传送了参数,但是返回信息有错。第二次“GET”,则既无传参,也无返回。

    这个问题直接导致了后台.NET无法获取到参数并返回正确的值。

    解决的方式很奇特,只要将url中的Test.aspx改为test.aspx,或者将Ajax的type改为"GET"就可以正常运行。即:

    $.ajax({
        url:"test.aspx",
        type:"POST",
        data:{
            parameter:value
        },success:function(response){
                //Call back function
        }
    });

    这算是个JS或者.Net的BUG么?


    把上面这句话删掉。实在没想到初来乍到,为学习求知积累的目的写下博文,随口一句问句被解读成了“装B的2货”。

    看到后面几条评论才品味出@BruceL 话语里浓浓的讽刺。

    谢谢@KindFace 的提示。我试着加了dataType,并改了一些参数名字,文件名有大小写时依旧有错。有可能是我dataType写的不对,我并没有一个个试过来,因为这是个从前辈手上刚接手的一个成熟已上线的项目,代码结构比较复杂也不好改。东西也交给别人去测试了,我也没有本地环境继续尝试。。。慢点搭一个比较干净的代码环境测试。

    @孤月狼 我确定这样改了以后一切运行正常,IE7/8/9/Firefox/Chrome都测试成功。

  • 相关阅读:
    第二周学习总结
    调查问卷
    第五周学习总结
    基于DevExpress的项目窗体统一换肤
    一个Linq to Sql 的关联小问题,搞死人
    VC中类型转换(转载)
    保证一个程序只运行一次
    给所有的Control添加发送键盘事件Tab事件,实现回车键自动跳转到下一个控件[基于Shark Xu]
    遍历进程
    CSS Friendly ASP.NET 2.0 Control Adapters (Beta 2.0)在处理URL时的一个Bug
  • 原文地址:https://www.cnblogs.com/jennieji/p/2747903.html
Copyright © 2020-2023  润新知