繁体   English   中英

无法使用ajax()发布提交表单数据

[英]Unable to submit form data using ajax() post

我使用$.ajax()方法提交表单数据,该数据包含图像文件。 提交时遇到以下问题:

  1. 表单未在IE10,11中提交
  2. 尽管它以chrome和FF提交,但ajax()执行成功和错误方法
  3. 我能够以chrome和FF提交数据,但仅显示错误消息
  4. 数据从Chrome和FF提交到数据库

以下是我用来提交数据的代码

$.fn.serializeObject = function()
    {
        var o = {};
        var a = this.serializeArray();
        $.each(a, function() {
            if (o[this.name] !== undefined) {
                if (!o[this.name].push) {
                    o[this.name] = [o[this.name]];
                }
                o[this.name].push(this.value || '');
            } else {
                o[this.name] = this.value || '';
            }
        });
        return o;
    };

$(function() {
    $('form').submit(function() {
        var senddata = JSON.stringify($('form').serializeObject());
        $('#result').text(senddata);
        var form_data = new FormData($(this)[0]);
        form_data.append('jsonString', senddata); 
        var settings = {
          "async": true,
          "crossDomain": true,
          "url": "google.com",//sample url
          "method": "POST",       
          "processData": false,
          "contentType": false,
          "headers": {
            "Access-Control-Allow-Origin": "*",
            "cache-control": "no-cache"
          },
          "mimeType": "multipart/form-data",
          "cache": false,
          "data": form_data//,
          //"dataType": "jsonp"

        };
        $.ajax(settings).done(function (data) {
              console.log(data);
            })
            .success(function (data) { 
                alert("submitted");
            })
            .error(function (data){
                alert("failed");
                console.log(data);
            });

        return false;
    });
});

    <!-- language: lang-html -->

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <form action="">
            <input type="hidden" name="profileTypeId" value="112" maxlength="36" size="12"/>
            First Name:<input type="text" name="firstName" value="Hydtest" maxlength="12" size="12"/> <br/>
            Last Name:<input type="text" name="lastName" value="3SparrowTest" maxlength="36" size="12"/> <br/>
            email:<input type="text" name="emailId" value="jackSparrow@testmail.com" maxlength="36" size="12"/> <br/>
            Address1:<input type="text" name="address1" value="PiratesTest" maxlength="36" size="12"/> <br/>
            <input type="hidden" name="address2" value="PiratesTest" maxlength="36" size="12"/>
             <input type="hidden" name="city" value="caribbean" maxlength="36" size="12"/>        
            Profile Image: <input name="file" type="file" /><br />

            <p><input type="submit" /></p>
            </form>

    <!-- end snippet -->

我认为该表格由于图像而不提交。 您可以在将图像提交到服务器之前尝试对图像进行base64编码。

这是使用javascript对base64编码图像的参考:

https://davidwalsh.name/convert-image-data-uri-javascript

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM