2016-11-06 110 views
1

我有一个带有文件上传和需要UTF-8编码的文本输入的表单。当我尝试通过ajax发送表单时,我无法将contentType更改为false,那么如何保护我的文本呢?ajax multipart/form-data post charset utf-8

$.ajax({ 
      url   : 'url';?>', 
      type: "POST",    
      data: new FormData(this), 
      contentType: false,  
      cache: false,    
      processData:false,   
      success: function(data) 
      {  
       alert 'ok'; 
      } 
+0

可以提供Ajax请求 –

+0

@ user3731557的完整代码,正确地格式化代码 –

回答

0

您可以在表单中使用此代码提交:

$("#formId").submit(function(){ 

    var formData = new FormData($(this)[0]); 

    $.ajax({ 
     url: 'your_url', 
     type: 'POST', 
     data: formData, 
     async: false, 
     success: function (data) { 
      alert(data) 
     }, 
     cache: false, 
     contentType: false, 
     processData: false 
    }); 

    return false; 
}); 
+0

这个代码将内容类型设置为multipart/form-data的默认情况下,我怎么能编码文本字符集UT-8 – user3731557

+0

你可以使用这个:mysqli_set_charset($ con,'utf8'); –

+0

mysql已经设置为utf-8,所以我需要设置utf-8之前请求去php – user3731557

0

嗯,我不明白这个问题在所有,每一个AJAX后是UTF-8。检查docs

如果数据是文档,则在发送之前将其序列化。当 发送文档时,版本3之前的Firefox总是 使用UTF-8编码发送请求; Firefox 3使用body.xmlEncoding指定的编码正确发送 文档,如果 未指定编码,Firefox 3会正确发送文档。