weixin_33713707 2017-07-20 09:00 采纳率: 0%
浏览 59

表单重定向Jquery Ajax

I'm working on an HTML app in which there is a form. On clicking the submit button, I make a server-side call using jquery.ajax(). However, whenever an exception is returned from the server, like a Status Code 500, I need to display an error message on the same page. However, it automatically redirects when it encounters an error. I tried using the statusCode setting in jquery.ajax() like this:

$.ajax(
{
    method: 'GET',
    url: 'my url',
    //...
    successCode: {
        500: function(response) {
            alert(response.getResponseHeader("xyz"));
            $('some_selector').show();
        }
    },
    success: function(){},
    error: function(){}
    //...
}) 

But this does not seem to work. It redirects me to the action link and displays the JSON error and I cannot think of a way to prevent this redirect. Any help would be appreciated.

Thanks

  • 写回答

1条回答 默认 最新

  • weixin_33701251 2017-07-20 09:09
    关注

    It seems like your ajax options are outside of the ajax call put your parameters inside like
    $.ajax(){options} => $.ajax({options})

    Try this,

        $.ajax({url: 'your url',
            type: 'GET',
            success: function (response) {
                //succesfull request
    
            }
        }).fail(function (response) {
            //failed request
        });
    

    You should be able to find the status code in the fail using response.status

    I think your submit button is triggering the redirect. Try adding

    $("#myform").submit(function(event){
           event.preventDefault();  
    });
    

    to prevent the redirect

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB图像问题
  • ¥20 树莓派5做人脸情感识别与反馈系统
  • ¥15 selenium 控制 chrome-for-testing 在 Linux 环境下报错 SessionNotCreatedException
  • ¥15 使用pyodbc操作SQL数据库
  • ¥15 MATLAB实现下列
  • ¥30 mininet可视化打不开.mn文件
  • ¥50 C# 全屏打开Edge浏览器
  • ¥80 WEBPACK性能优化
  • ¥30 python拟合回归分析
  • ¥500 metaswitch 6010