jQuery
正規表現
Ajax
FormData

IOS11.3でformDataを使って画像とテキストを同時に送ろうとしたら「キャンセル」されてしまう

jqueryのajaxを使用して、formDataを使っており、画像とテキストを同時に送る場合、なぜかキャンセルされてしまう現象が起こった。

さっそく解決策

      var ua = navigator.userAgent
      var formData_ = new FormData($('#form').get(0));

      if(/iPhone/.test(ua)) {
        ua.userAgent.match(/iPhone OS (\w+){1,3}/g);
        var iosv=(RegExp.$1.replace(/_/g, '')+'00').slice(0,3);
        if(iosv === '113') {
          if(!$("#image").val()) {
            formData_.delete('image'); //name属性をdelete
          }
          if(!$("#content").val()) {
            formData_.delete('content');//name属性をdelete
          }
        }
      }


fileがない場合、fileを消す
textがない場合、textを消す
両方ある場合、何もしない

IOSとiEは、本当にアレですね。