marcossousaPJ 30 de mai. de 2006
Hummm, isto significa que você não instanciou a classe, acho que é isso. Bem na verdade você tem que pegar esta instância de acordo com o teu browser veja este exemplo:
function newXMLHttpRequest & #40 ; & #41 ; & #123 ;
if & #40 ; window . XMLHttpRequest & #41 ; & #123 ;
req = new XMLHttpRequest & #40 ; & #41 ;;
& #125 ; else if & #40 ; window . ActiveXObject & #41 ; & #123 ;
try & #123 ;
req = new ActiveXObject & #40 ; & quot ; Msxml2 . XMLHTTP & quot ; & #41 ;;
& #125 ; catch & #40 ; e & #41 ; & #123 ;
try & #123 ;
req = new ActiveXObject & #40 ; & quot ; Microsoft . XMLHTTP & quot ; & #41 ;;
& #125 ; catch & #40 ; E & #41 ; & #123 ;
xmlhttp = false ;
& #125 ;
& #125 ;
& #125 ;
return req ;
& #125 ;
:okok:
SchuenemannPJ 30 de mai. de 2006
Ué, mas a primeira linha não está instanciando?
Eu sei que tem a incompatibilidade dos browsers, mas isso é um script pro greasemonkey. Só vai rodar no firefox.
Alguma idéia?
ErkoPJ 30 de mai. de 2006
a princípio o script proposto pelo Marcos
irá rodar em qualquer browser, eu uso um similar
e funciona… :roll:
SchuenemannPJ 31 de mai. de 2006
Certo, só que o meu só vai rodar em firefox, então tudo aquilo é desnecessário.
Ou não?
jaireltonPJ 31 de mai. de 2006
Não seria assim? :idea:
var req = new XMLHttpRequest();
req.open("GET", "http://.../?" + params, true);
req.send(null);
ErkoPJ 31 de mai. de 2006
bom segue um exemplo de mais ou menos como to usando… :roll:
/*
* Returns an new XMLHttpRequest object , or false if the browser
* doesn 't support it
*/
function newXMLHttpRequest & #40;) {
var xmlreq = false ;
// Create XMLHttpRequest object in non - Microsoft browsers
if & #40;window.XMLHttpRequest) {
xmlreq = new XMLHttpRequest & #40;);
& #125; else if (window.ActiveXObject) {
try & #123;
// Try to create XMLHttpRequest in later versions
// of Internet Explorer
xmlreq = new ActiveXObject & #40;"Msxml2.XMLHTTP");
& #125; catch (e1) {
// Failed to create required ActiveXObject
try & #123;
// Try version supported by older versions
// of Internet Explorer
xmlreq = new ActiveXObject & #40;"Microsoft.XMLHTTP");
& #125; catch (e2) {
// Unable to create an XMLHttpRequest by any means
xmlreq = false ;
& #125;
& #125;
& #125;
return xmlreq ;
& #125;
/*
* Returns a function that waits for the specified XMLHttpRequest
* to complete , then passes it XML response to the given handler function .
* req - The XMLHttpRequest whose state is changing
* responseXmlHandler - Function to pass the XML response to
*/
function getReadyStateHandler & #40;req, responseXmlHandler) {
// alert & #40; "getReadyStateHandler(req, responseXmlHandler)" );
// alert & #40; req );
// Return an anonymous function that listens to the XMLHttpRequest instance
return function & #40;) {
// alert & #40; "function" );
// If the request 's status is "complete"
if & #40;req.readyState == 4) {
// alert & #40; "req.readyState == 4" );
// Check that we received a successful response from the server
if & #40;req.status == 200) {
// alert & #40; req.getAllResponseHeaders() );
// document . getElementById & #40; 'retornoXML' ).value = req.responseXML.value;
// alert & #40; "req.responseXML: " + req.responseXML );
// alert & #40; "req.responseText: " + req.responseText );
// Pass the XML payload of the response to the handler function .
// responseXmlHandler & #40; req.responseXML );
responseXmlHandler & #40; req.responseText );
& #125; else {
// An HTTP problem has occurred
alert & #40;"HTTP error "+req.status+": "+req.statusText);
& #125;
& #125;
& #125;
& #125;
//---------------------------------------------------------------------------------
function search & #40; value ) {
var url = "http://www.sistema.dominio/serviço.ext" ;
var req = newXMLHttpRequest & #40;);
req . open & #40;"post", url, true);
req . setRequestHeader & #40;"Content-Type", "application/x-www-form-urlencoded");
req . onreadystatechange = getReadyStateHandler & #40; req, updateInfo );
// o conteudo é a concatenação dos parametros e seus respectivos valores
req . send & #40; "parametro=" + value );
& #125;
function updateInfo & #40; retorno_do_servidor ) {
// aqui você implementa o tratamento dos dados retornados
& #125;
& #125;
jaireltonPJ 31 de mai. de 2006
Você não pode fazer isso pra outros dominios não, você tem que usar um path relativo!
ErkoPJ 31 de mai. de 2006
cara isso ai é um exemplo só…
na minha app eu uso mais de 3 serviços destintos alem
da minha app no servidor
SchuenemannPJ 31 de mai. de 2006
O erro era aquele mesmo, mas como é um script pro GM tive que fazer um pouco diferente, usando GM_xmlhttpRequest.
Valeu gente.