2015-07-05 2 views
0

Я знаю как "GET" данные с использованием XMLHttpRequest(), а также хотел бы использовать XMLHttpRequest() для "PUT" данные в файл. Данные, которые я хотел бы "PUT", - это просто текст. Существует много о том, как данные "GET", но я провел много исследований и не нашел много о том, как данные "PUT". Есть несколько вопросов в Интернете, пытающихся сделать что-то подобное, но обычно вместо "POST", и ни один из них не найден, показывая рабочую модель. Некоторые говорят, что для "POST" ing или "PUT" данных, его "Content-type" должен быть "application/x-www-form-urlencoded" и никогда "text/plain". Я хотел бы выполнить свою просьбу синхронно и вместо этого использовать Node.js. К тому, что я нашел, это (внизу), похоже, является способом для данных "PUT", но не работает.XMLHttpRequest «PUT»

Как данные должны быть "PUT" с использованием XMLHttpRequest()?

var string = encodeURIComponent("Text String!"); 
var req = new XMLHttpRequest(); 
req.open("PUT", "example/data.txt", false); 
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
req.setRequestHeader("Content-length", string.length); 
req.setRequestHeader("Connection", "close"); 
req.send(string); 

Я попытался "text/plain" как "Content-type", но консоль браузера дает мне «ошибка синтаксиса» в ресурсе, я хочу, чтобы заменить или говорит мне «ни один элемент не найден», если ресурс является пустым.

+1

Пробовали ли вы использовать локон или скрипач ?, ваша конечная точка настроена для PUT – BhavO

+0

Попробуйте асинхронный запрос. Sync XHR устарел и может генерировать исключения по нетрадиционным запросам (CORS, PUT и т. Д.). Кроме того, вам не нужно устанавливать «Content-length», браузер делает это автоматически. – Bergi

+0

@Bergi, я попробовал асинхронный запрос и прокомментировал «Content-length», но возвращает тот же результат в консоли, что и запрос синхронизации, и не изменяет ресурс, на который действует '' PUT ''. – JavaScriptArray

ответ

0

PUT создает или заменяет ресурс. Таким образом, поле заголовка Content-Type должно содержать тип содержимого отправляемого представления. Для получения дополнительной информации см. section 4.3.4 of RFC 7231.

+0

Я знаю, что« PUT »создает или заменяет ресурс и попробовал «text/plain» как «Content-type», но консоль браузера дает мне синтаксическую ошибку в ресурсе, который я хочу заменить, или говорит мне, что элемент не найден, если ресурс пуст. – JavaScriptArray

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