无法使用ajax()帖子提交表单数据

时间:2016-09-22 14:56:50

标签: javascript jquery ajax

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

  1. 表单未在IE10,11
  2. 中提交
  3. 虽然它是以chrome和FF提交的,ajax()执行成功和错误方法
  4. 我能够以chrome和FF提交数据,但它只显示错误消息
  5. 数据从Chrome和FF
  6. 提交给数据库

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

    $.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 -->
    

1 个答案:

答案 0 :(得分:0)

我认为表单因图像而未提交。您可以在将图像提交到服务器之前尝试对图像进行base64编码。

以下是使用javascript:

对base64编码图像的引用

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

相关问题