>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >XMLHttpRequest и веб сервис проблема!!! http://forum.mozilla-russia.org/viewtopic.php?id=39328 |
Ispanec > 01-09-2009 23:40:26 |
Здравстуйте несколько дней не могу решить проблему. req.send(str); Если исопльзую Internet Explorer 7 то всё прекрасно работает и возвращаются данные, если жи Fire Fox 3.5 то в firebug отслеживаю следующую ошибку uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: file:///C:/Documents%20and%20Settings/Admin/%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9%20%D1%81%D1%82%D0%BE%D0%BB/%D1%81%D0%B0%D0%B9%D1%82/wer.html :: GetValue :: line 48" data: no] помогите опжалуйста разобраться! я уже использовал и JQuery и разные другие инстументы в IE7 всё нормально в FF3.5 и Opera проблемы, не знаю что делать! |
Lynn > 01-09-2009 23:48:19 |
https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript |
formatC'vt > 03-09-2009 11:15:02 |
Не хватает прав для вызова функции (это ведь файл с диска, а не установленное расширение). Добавьте в код: Выделить код Код:netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess'); К сожалению Вы не привели код функции onProgress, по этому приведу свой пример. Выделить код Код:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> function xmlrpcSynCall() { try { var req = new XMLHttpRequest(); netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess'); req.open('POST', "http://kiparis.crimea.ua:81/ws/testKiparis.1cws", false); req.setRequestHeader("Content-type", "text/xml"); var xml = '<?xml version="1.0" encoding="UTF-8"?>' + '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/>' + '<soap:Body> <m:Get xmlns:m="http://www.service-kiparis.feo"/> </soap:Body>' + '</soap:Envelope>'; req.send(xml); if(req.status == 200) { try { var response = req.responseText; response = response.replace('<?xml version="1.0" encoding="UTF-8"?>', ""); // bug 336551 var xmlCode = new XML(response); alert(xmlCode) return xmlCode; } catch (e) { alert('Error (req.send): \n'+e.message); } } } catch (e) { alert('Error: \n'+e.message); } } </script> </head> <body> <button onclick="xmlrpcSynCall();">Кнопка с текстом</button> </body> </html> результат выполнения этого запроса у меня получился следующий: Выделить код Код:<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <m:GetResponse xmlns:m="http://www.service-kiparis.feo"> <m:return xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Тест</m:return> </m:GetResponse> </soap:Body> </soap:Envelope> |
Ispanec > 04-09-2009 09:29:47 |
Большое спасибо вам!!!!!!!!!!!!! уже неделю не знал что сделать 04-09-2009 09:34:44 formatC'vt пишет
вы случайно не знаете как добавить такую возможность и в Opera потому что там похожая проблема?? 04-09-2009 09:50:02 Ispanec пишет
или где можно почитать про это мне надо чтобы вызовы веб - севисвсов происходили в любом браузере по крайней мере во многих. Пока только IE и FF |
aikin > 24-08-2011 10:49:15 |
Уважаемые специалисты помоги пожалуйста голова уже кругом в IE6 все без проблем в FF status=0, responseText="", responseXML=null может быть это где то какието разрешения необходимо устанавливать, почему FF не видит ответа от сервера а IE видит
Выделить код Код:function getXmlHttp(){ var xmlhttp; if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} return xmlhttp; } function AnswerSerwer1C(xmlhttp){ if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { var ДомОтвет = xmlhttp.responseXML.getElementsByTagName('m:return')[0] ; var ДанныеОтвета = ДомОтвет.childNodes[0].data; alert(ДанныеОтвета); } else{ alert("не работает нифига " + xmlhttp.responseText); } } } function myfunc(){ var xmlhttp = getXmlHttp(); xmlhttp.onreadystatechange = function() {AnswerSerwer1C(xmlhttp)} xmlhttp.open('POST', 'http://127.0.0.1/frombro/ws/helloworld.1cws', true); xmlhttp.send('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' + '<soap:Header/>' + '<soap:Body> <m:hello xmlns:m="http://www.sample-package.org"/></soap:Body>' + '</soap:Envelope>'); } |
hydrolizer > 24-08-2011 11:56:23 |
aikin |
aikin > 24-08-2011 12:06:48 |
hydrolizer причем в IE и синхронно работает ну что за... если я правильно понял то ограничение на кросс-доменность распространяется на весь метод XMLHttpRequest вне зависимости от броузера, если в ие отрабатывает наверно не считает крос доменным Выделить код Код:function getXmlHttp(){ var xmlhttp; if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} return xmlhttp; } function IE(str){ if (browser.msie || browser.firefox3) return "m:" + str else return str } function AnswerSerwer1C(xmlhttp){ if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { var ДомОтвет = xmlhttp.responseXML.getElementsByTagName('m:return')[0] ; var ДанныеОтвета = ДомОтвет.childNodes[0].data; alert(ДанныеОтвета); } else{ alert("Да еп вашу мать какого хера " + xmlhttp.responseText); } } } function myfunc(){ var xmlhttp = getXmlHttp(); //xmlhttp.onreadystatechange = function() {AnswerSerwer1C(xmlhttp)} //netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess'); xmlhttp.open('POST', 'http://127.0.0.1/frombro/ws/helloworld.1cws', false); xmlhttp.setRequestHeader("Content-type", "text/xml"); var xml ='<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' + '<soap:Header/>' + '<soap:Body> <m:hello xmlns:m="http://www.sample-package.org"/></soap:Body>' + '</soap:Envelope>'; try { xmlhttp.send(xml); } catch (e) { alert('Error (req.send): \n'+e.message); } if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { var ДомОтвет = xmlhttp.responseXML.getElementsByTagName('m:return')[0] ; var ДанныеОтвета = ДомОтвет.childNodes[0].data; alert(ДанныеОтвета); } else{ alert("Не работает " + xmlhttp.responseText); } } } |
hydrolizer > 24-08-2011 13:26:43 |
aikin |
aikin > 24-08-2011 13:56:51 |
hydrolizer пишет
так я и нашел боле мене подходящую веточку форума, и эту штуку пробовал в коде она комментирована после того как не дала результатов кроме дополнительных вопросов при выполнении кода (разрешить изменение привилегии) такая же ошибка |