为什么要对同一页面发出 GET 请求

本文关键字:GET 请求 一页 为什么 | 更新日期: 2023-09-27 18:33:31

我有一个表单

    <form id="registration-form">
        <fieldset class="form-group">
            <label for="name">Name</label>
            <input type="text" class="form-control" name="pname" id="name" placeholder="Enter Partner Name Here">
        </fieldset>
        <fieldset class="form-group">
            <label for="email">Email Address</label>
            <input type="text" class="form-control" name="eaddr" id="email" placeholder="Enter Email Address Here">
        </fieldset> 
        <button class="btn btn-primary" type="submit">Take Survey</button> 
        <p><span class="errmsg" id="reg-error"></span></p>        
    </form>

我的目的是提交它会调用 AJAX 调用

    $('#registration-form').submit(function(ev){
        ev.preventDefault();
        $.ajax({
            url : '/Account/AddPartner',
            method : 'POST',
            data : {
                pname: $('input[name="pname"]').val(),
                eaddr: $('input[name="eaddr"').val()
            },
        // ...
    });
如果成功,则会

将它们重定向到新页面,如果不成功,则会返回显示的错误消息。处理此问题的控制器是

    [HttpPost]
    public ActionResult AddPartner ( string pname, string eaddr )
    {
        Guid? newpid = this._Db.AddPartner(pname, eaddr);
        if ( newpid != null )
        {
            return RedirectToAction("FillOut", "Answers", new { pid = newpid }); // should redirect to /Answers/FillOut?pid=newpid
        }
        else
        {
            return Json(new { msg = "Failed get id of partner"} );
        }
   }

由于某种奇怪的原因,正在发生的事情是,当提交表单时,GET问题正在向表单所在的同一页面提出,例如

/

Account/Register?pname=klaskdljaskldjas&eaddr=akdalkkldjkl%40hotmail.com

这是怎么回事?

为什么要对同一页面发出 GET 请求

重定向到操作从 ajax 请求不起作用,您必须在成功调用 ajax 后从客户端重定向。

另外,您丢失了一对"})"在你的JavaScript中