Вход на сайт
AJAX - запрос PUT
557
NEW 10.06.11 23:26
Последний раз изменено 10.06.11 23:29 (project33)
Может кто сталкивался - при ajax запросе метод PUT заменяется на OPTIONS. При этом в хедере появляется строка Access-Control-Request-Method: PUT
Иначе говоря - должно быть
PUT / HTTP/1.1
а стоит
OPTIONS / HTTP/1.1
Access-Control-Request-Method: PUT
код
Иначе говоря - должно быть
PUT / HTTP/1.1
а стоит
OPTIONS / HTTP/1.1
Access-Control-Request-Method: PUT
код
В ответ на:
xml=getXmlHttp();
xml.open("PUT", "http://www.сайт.eu/", true);
xml.send("test");
xml=getXmlHttp();
xml.open("PUT", "http://www.сайт.eu/", true);
xml.send("test");
Продвижение сайтов, реклама: https://www.pro33.net
NEW 11.06.11 14:35
в ответ project33 10.06.11 23:26
Эээ... Ты уверен, что у тебя именно PUT? В смысле - перепутал с POST?
Бо, PUT - не получение, а загрузка данных/файлов на сервер?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
Бо, PUT - не получение, а загрузка данных/файлов на сервер?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
NEW 11.06.11 23:52
в ответ project33 11.06.11 15:33
Хммм...
По протоколу метод PUT - опциональный - может поддерживаться, а может и не поддерживаться.
На IIS, например, надо отдельно разрешать - по умолчанию запрещен.
Потому сначала идет запрос об поддержке метода. Именно то, что ты видишь. Потом пойдет сам
запрос.
Как обойти - не знаю, не интересовался.
По протоколу метод PUT - опциональный - может поддерживаться, а может и не поддерживаться.
На IIS, например, надо отдельно разрешать - по умолчанию запрещен.
Потому сначала идет запрос об поддержке метода. Именно то, что ты видишь. Потом пойдет сам
запрос.
Как обойти - не знаю, не интересовался.
NEW 12.06.11 01:48
в ответ Murr 11.06.11 23:52
тому серваку, к которому нужен доступ, только put нужен. проблема в яваскрипте, как мне кажется, но не знаю пока как ее обойти. остальные методы работают без проблем, а вот put заменяется на options, неважно к какому серваку обращаешься
Продвижение сайтов, реклама: https://www.pro33.net
NEW 12.06.11 01:59
в ответ project33 12.06.11 01:48
тому серваку, к которому нужен доступ, только put нужен.
------
Возможно. Но он обязан отвечать корректно на запрос ОПТИОНС...
а вот put заменяется на options, неважно к какому серваку обращаешься
------
Так и должно быть - клиенту не известно что поддерживается - потому будет дополнительный запрос.
ЗЫ. Я не думаю, что это АЯКС - это не его уровень - это уровень имплементации HTTP...
------
Возможно. Но он обязан отвечать корректно на запрос ОПТИОНС...
а вот put заменяется на options, неважно к какому серваку обращаешься
------
Так и должно быть - клиенту не известно что поддерживается - потому будет дополнительный запрос.
ЗЫ. Я не думаю, что это АЯКС - это не его уровень - это уровень имплементации HTTP...
NEW 12.06.11 02:03
отвечает, да толку мало. должен идти put без всяких предварительных запросов. я уж было подумал, что стоит вначале get делать, но это ничего не дало. options отправляет браузер
В ответ на:
обязан отвечать корректно на запрос ОПТИОНС
обязан отвечать корректно на запрос ОПТИОНС
отвечает, да толку мало. должен идти put без всяких предварительных запросов. я уж было подумал, что стоит вначале get делать, но это ничего не дало. options отправляет браузер
Продвижение сайтов, реклама: https://www.pro33.net
NEW 12.06.11 11:59
в ответ project33 12.06.11 02:03
options отправляет браузер
------
??? - Какое дело браузеру до АЯКСовского запроса?
Это дело XMLHTTP (new ActiveXObject("Microsoft.XMLHTTP");)
- можешь поковырять его на предмет того, какую версию протокола использовать...
ЗЫ Про "встроенные" реализации в большинстве бразеров Я знаю, но и там где-то
в базисе будет что-то похожее...
------
??? - Какое дело браузеру до АЯКСовского запроса?
Это дело XMLHTTP (new ActiveXObject("Microsoft.XMLHTTP");)
- можешь поковырять его на предмет того, какую версию протокола использовать...
ЗЫ Про "встроенные" реализации в большинстве бразеров Я знаю, но и там где-то
в базисе будет что-то похожее...
NEW 12.06.11 12:43
в ответ Murr 12.06.11 11:59
ActiveXObject("Microsoft.XMLHTTP") только для IE, в остальных случаях XMLHttpRequest() и тем я не уверен, что это влияет на подмену метода. хотя конечно все может быть. тем не менее вопрос не решен. сейчас думаю как сделать put по другому
Продвижение сайтов, реклама: https://www.pro33.net
12.06.11 13:05
вопрос решен. дело было в фф4. ie9 не подменяет put - неважно какая версия протокола. спасибо за поддержку 

Продвижение сайтов, реклама: https://www.pro33.net