Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

AJAX - запрос PUT

557  
project33 коренной житель10.06.11 23:26
project33
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
код
В ответ на:
xml=getXmlHttp();
xml.open("PUT", "http://www.сайт.eu/", true);
xml.send("test");

Продвижение сайтов, реклама: https://www.pro33.net
#1 
Murr патриот11.06.11 14:35
Murr
NEW 11.06.11 14:35 
в ответ project33 10.06.11 23:26
Эээ... Ты уверен, что у тебя именно PUT? В смысле - перепутал с POST?
Бо, PUT - не получение, а загрузка данных/файлов на сервер?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
#2 
project33 коренной житель11.06.11 15:33
project33
NEW 11.06.11 15:33 
в ответ Murr 11.06.11 14:35, Последний раз изменено 11.06.11 15:33 (project33)
не перепутал. нужен PUT
Продвижение сайтов, реклама: https://www.pro33.net
#3 
Murr патриот11.06.11 23:52
Murr
11.06.11 23:52 
в ответ project33 11.06.11 15:33
Хммм...
По протоколу метод PUT - опциональный - может поддерживаться, а может и не поддерживаться.
На IIS, например, надо отдельно разрешать - по умолчанию запрещен.
Потому сначала идет запрос об поддержке метода. Именно то, что ты видишь. Потом пойдет сам
запрос.
Как обойти - не знаю, не интересовался.
#4 
project33 коренной житель12.06.11 01:48
project33
NEW 12.06.11 01:48 
в ответ Murr 11.06.11 23:52
тому серваку, к которому нужен доступ, только put нужен. проблема в яваскрипте, как мне кажется, но не знаю пока как ее обойти. остальные методы работают без проблем, а вот put заменяется на options, неважно к какому серваку обращаешься
Продвижение сайтов, реклама: https://www.pro33.net
#5 
Murr патриот12.06.11 01:59
Murr
NEW 12.06.11 01:59 
в ответ project33 12.06.11 01:48
тому серваку, к которому нужен доступ, только put нужен.
------
Возможно. Но он обязан отвечать корректно на запрос ОПТИОНС...
а вот put заменяется на options, неважно к какому серваку обращаешься
------
Так и должно быть - клиенту не известно что поддерживается - потому будет дополнительный запрос.
ЗЫ. Я не думаю, что это АЯКС - это не его уровень - это уровень имплементации HTTP...
#6 
project33 коренной житель12.06.11 02:03
project33
NEW 12.06.11 02:03 
в ответ Murr 12.06.11 01:59, Последний раз изменено 12.06.11 02:09 (project33)
В ответ на:
обязан отвечать корректно на запрос ОПТИОНС

отвечает, да толку мало. должен идти put без всяких предварительных запросов. я уж было подумал, что стоит вначале get делать, но это ничего не дало. options отправляет браузер
Продвижение сайтов, реклама: https://www.pro33.net
#7 
Murr патриот12.06.11 11:59
Murr
NEW 12.06.11 11:59 
в ответ project33 12.06.11 02:03
options отправляет браузер
------
??? - Какое дело браузеру до АЯКСовского запроса?
Это дело XMLHTTP (new ActiveXObject("Microsoft.XMLHTTP");)
- можешь поковырять его на предмет того, какую версию протокола использовать...
ЗЫ Про "встроенные" реализации в большинстве бразеров Я знаю, но и там где-то
в базисе будет что-то похожее...
#8 
project33 коренной житель12.06.11 12:43
project33
NEW 12.06.11 12:43 
в ответ Murr 12.06.11 11:59
ActiveXObject("Microsoft.XMLHTTP") только для IE, в остальных случаях XMLHttpRequest() и тем я не уверен, что это влияет на подмену метода. хотя конечно все может быть. тем не менее вопрос не решен. сейчас думаю как сделать put по другому
Продвижение сайтов, реклама: https://www.pro33.net
#9 
project33 коренной житель12.06.11 13:05
project33
NEW 12.06.11 13:05 
в ответ Murr 12.06.11 11:59, Последний раз изменено 12.06.11 13:32 (project33)
вопрос решен. дело было в фф4. ie9 не подменяет put - неважно какая версия протокола. спасибо за поддержку
Продвижение сайтов, реклама: https://www.pro33.net
#10 
Murr патриот12.06.11 15:45
Murr
12.06.11 15:45 
в ответ project33 12.06.11 13:05
ie9 не подменяет put
------
Значит мелкомягкие опять напортачили...
Ну да работает и ладушки...
Эээ... для общего развития - ActiveXObject - можно создать, если они есть в системе и если они разрешены, в любом браузере.
#11 
project33 коренной житель12.06.11 16:10
project33
NEW 12.06.11 16:10 
в ответ Murr 12.06.11 15:45, Последний раз изменено 12.06.11 16:11 (project33)
можно, но не нужно. не напортачили, а наконец сделали нормально
Продвижение сайтов, реклама: https://www.pro33.net
#12