2014-10-13 3 views
0

Я пытаюсь получить AJAX файл (изображение) загрузить работает, но у меня возникают некоторые проблемы с отправкой переменных через API FormData:Как отправить переменную через API Javascript FormData

Это код FormData:

var data = new FormData(); 
data.append('SelectedFile', _file.files[0]); 
data.append('name', event_title); 

Как вы можете видеть в строке 3 Я пытаюсь отправить переменную на сервер одновременно. event_title определяется как

var event_title = document.getElementById("new_event_title").value; 

И это вызывается перед формой. Код.

Я могу отправить обычный текст через сервер просто отлично, например

date.append("name", "enter-name"); 

Однако, когда я изменить это к переменной она перестает работать.

Я проверил MDN и HTML5rocks безрезультатно, поэтому, если кто-нибудь мог помочь, я был бы признателен.

+0

Вы проверили консоль браузера на наличие ошибок? Если статический текст работает нормально, а переменные - нет, то это почти наверняка проблема с переменной. – Drahcir

+0

Спасибо Drahcir, я проверил консоль, и единственная ошибка, которую я нашел, это: Не удалось загрузить ресурс: net :: ERR_CACHE_MISS – Joshua

+0

Я понятия не имею, это должно быть что-то еще на вашей странице, что вызывает проблему. Возможно, вы можете опубликовать сокращенную версию своего кода на JSFiddle – Drahcir

ответ

1

Этот код показывает, как можно отправить файл и переменный строковый параметр в то же время:

document.getElementById("submitBtn").onclick = function(){ 
 
    var event_title = document.getElementById("new_event_title").value; 
 
    var file = document.getElementById("file").files[0]; 
 
    
 
    var data = new FormData(); 
 
    data.append('SelectedFile', file); 
 
    data.append('name', event_title); 
 
    
 
    var xhr = new XMLHttpRequest(); 
 
    xhr.open('POST', 'http://example.com/', true); 
 
    xhr.send(data); 
 
};
<input type="text" id="new_event_title" value="My Event Title"> 
 
<input type="file" id="file"> 
 
<br> 
 
<input type="submit" id="submitBtn" value="Send">

Нажмите выше, чтобы запустить код и посмотреть на вкладке Сети в консоли браузера вы увидите, что данные отправлены. Я подозреваю, что ваша проблема связана с другим кодом на вашей странице.

Смежные вопросы