А при чем тут ajax?
Он не поможет загружать в произвольный файл и дописывать туда.
А если устраивает вариант, что каждый раз запрашивается имя файла, то можно без всякого ajax, через блобы и <a>
<body>
<textarea id=txt rows=5" cols=25></textarea>
<br>
<button type=button id=sf>Save</button>
<script>
function textToFile (text, name) {
const b = new Blob([text], { type: 'text/plain' });
const url = window.URL.createObjectURL(b);
const a = document.createElement('a');
a.href = url;
a.download = name || 'text.txt';
a.type = 'text/plain';
a.addEventListener('click', () => {
setTimeout(() => window.URL.revokeObjectURL(url), 10000);
})
a.click()
}
document.getElementById('sf').addEventListener('click', () => {
textToFile (document.getElementById('txt').value, 'file.txt')
})
</script>
<body>