【问题标题】:How submit captcha to the controller using ajax and form data如何使用 ajax 和表单数据将验证码提交给控制器
【发布时间】:2019-12-01 04:04:14
【问题描述】:

我有一个form,其中包含一些字段和文件上传,在asp.net MVC 中使用ajax 呈现为partial view。提交表单时,我想将所有数据传递给控制器​​。但是如果我使用$("form").serialize(),它不会将选定的文件传递给控制器​​。所以我使用formData() 将数据传递给控制器​​。至此,一切正常。

但是在使用CaptchaMvc 添加captcha 后,它没有到达控制器。即使我输入了有效的captcha,它在控制器中也是无效的。

这就是我使用ajaxformData 向控制器发送数据的方式

       var data = new FormData(); 
        var vidFile = null;
        if ($("#FileUpload")[0].files.length > 0)
            vidFile = $("#FileUpload")[0].files[0];
        data.append("detail", $("#detail").val());
        data.append("name", $("#name").val());

        data.append("FileUpload", vidFile);
       $.ajax({
            url: "/home/submitData",
            type: "POST",
            contentType: false,
            processData:false,
            data: data,
            success: function (response) {

                if (response.success == true) {


                } else {

                }
            }
        });

有没有办法将验证码也传递给控制器​​?

【问题讨论】:

    标签: ajax asp.net-mvc partial-views captcha


    【解决方案1】:

    为什么不能使用不同的控制器功能进行验证,如下:

    提交时,先验证验证码,根据结果调用另一个控制器函数提交数据或显示错误。

     var submitData = function(){
        var data = new FormData(); 
        var vidFile = null;
        if ($("#FileUpload")[0].files.length > 0)
           vidFile = $("#FileUpload")[0].files[0];
        data.append("detail", $("#detail").val());
        data.append("name", $("#name").val());
        data.append("FileUpload", vidFile);
        $.ajax({
           url: "/home/submitData",
           type: "POST",
           contentType: false,
           processData:false,
           data: data,
           success: function (response) {
              if (response.success == true) {
                //Success
    
              } else {
                   //Submission failed
              }
          }
       });
    }
    var validateCaptcha = function(){
       $.ajax({
          url: "/home/validateCaptcha",
          type: "POST",
          data: $("form").serialize(),
          success: function (response) {
              if (response.success == true) {
                 submitData();
              } else {
                 alert("Invalid Captcha entry");
              }
          }
     });
    }
    $("form").submit(function(e){
       validateCaptcha();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      相关资源
      最近更新 更多