Я'м пытаются реализовать загрузите файл API, приведенный здесь : <БР> в <а href="и http://www.mediafire.com/developers/core_api/1.4/upload/#upload_top">Загрузить файл на MediaFire</а>
Я успешно смог загрузить POST-данные &ампер; ввод данных, но не имеют понятия, как послать на х-именем атрибут, который призван быть данные заголовка как указано в руководстве по API.
Мой Код :
xmlhttp=new XMLHttpRequest();
var formData = new FormData();
formData.append("Filedata", document.getElementById("myFile").files[0]);
var photoId = getCookie("user");
// formData.append("x-filename", photoId); //tried this but doesn't work
// xmlhttp.setRequestHeader("x-filename", photoId); //tried this too (gives error) [edited after diodeous' answer]
xmlhttp.onreadystatechange=function()
{
alert("xhr status : "+xmlhttp.readyState);
}
var url = "http://www.mediafire.com/api/upload/upload.php?"+"session_token="+getCookie("mSession")+"&action_on_duplicate=keep";
xmlhttp.open("POST", url);
// xmlhttp.setRequestHeader("x-filename", photoId); //tried this too, doesnt work. Infact nothing gets uploaded on mediafire. [edited after apsillers' answer]
// cant get response due to same origin policy
xmlhttp.send(formData);
Ваша ошибка
InvalidStateError: была сделана попытка использовать объект, который не является, или больше, полезная
появляется, потому что вы должны называть добавляет
После вызов "открыть". Просто переместить строку вашего добавляет
под открытым
линии (но прежде чем "отправить"):
xmlhttp.open("POST", url);
xmlhttp.setRequestHeader("x-filename", photoId);
xmlhttp.send(formData);
Использование: метод xmlhttp.добавляет(ключ, значение);
Проверьте, если пара ключ-значение является на самом деле появляться в запросе:
В Хром, нашли где-то так: Ф12: инструменты разработчика и GT; вкладка сети > на любой запрос вы отправили > "в представлении источника" под заголовки ответа
В зависимости от вашего тестирования рабочих процессов, если на любой паре вы добавили Это'Т есть, может нужно просто очистить кэш браузера. Чтобы убедиться, что ваш браузер используя свой наиболее актуальный код, вы можете увидеть в разделе'источники s, в Хром это где-то нашли, как: `Ф12: инструменты разработчика > В разделе Источники > YourJavascriptSrc.js и проверьте ваш код.
Но, как и другие ответы, сказал:
xhttp.setRequestHeader(key, value);
следует добавить пару ключ-значение для вашего заголовка запроса, обязательно сделайте это после того, как ваш открыть()
и перед отправить()