дело в том, что отправка файлов организуется с помощью скрытого фрейма, а не xmlhttprequest. А если попытаться загрузить в фрейм application/json, то появляется окно сохранения файла
1.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form id="my_form" target="asd" action="1.php" enctype="multipart/form-data">
<input type="file" name="asd">
<input type="submit">
</form>
<iframe name="asd" src="about:blank"></iframe>
</body>
</html>
1.php:
<?php header( 'Content-Type: application/json' ); ?>
{a: 123}