MSXML fornece o objeto Microsoft.XMLHTTP, que pode concluir as tarefas de conversão e envio de pacotes de dados para objetos Request.
A instrução para criar um objeto XMLHTTP é a seguinte:
Set objXML = CreateObject("Msxml2.XMLHTTP") ou
Definir objXML = CreateObject("Microsoft.XMLHTTP")
'Ou, para a versão 3.0 do XMLHTTP, use:
' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
Após a criação do objeto, chame o método Open para inicializar o objeto Request. O formato da sintaxe é:
poster.open http-method, url, async, userID, password.
O método Open contém 5 parâmetros, os três primeiros são obrigatórios, os dois últimos são opcionais (fornecidos quando o servidor requer autenticação). O significado dos parâmetros é o seguinte:
Método http: Método de comunicação HTTP, como GET ou POST
url: O endereço URL do servidor que recebe dados XML. Normalmente, o programa ASP ou CGI assíncrono é especificado na URL
: um sinalizador booleano que indica se a solicitação é assíncrona. Se for um modo de comunicação assíncrono (verdadeiro), o cliente não espera pela resposta do servidor; se for um modo de comunicação síncrono (falso), o cliente terá que esperar até que o servidor retorne uma mensagem antes de realizar outras operações
userID ID do usuário,
senha
usada para autenticação do servidor
Senha do usuário, usada para autenticação do servidorO método Send do objeto XMLHTTP
usa o método Open para inicializar o objeto Request e, em seguida, chama o método Send para enviar os dados XML:
poster.send
XML-data.
O tipo de parâmetro do método Send é Variant, que pode ser uma string ou árvore DOM ou fluxo de dados arbitrário. Existem duas maneiras de enviar dados: síncrona e assíncrona. No modo assíncrono, uma vez enviado o pacote de dados, o processo de envio é finalizado e o cliente realiza outras operações no modo síncrono, o cliente espera até que o servidor retorne uma mensagem de confirmação antes de finalizar o processo de envio;
O atributo readyState no objeto XMLHTTP pode refletir o progresso do servidor no processamento da solicitação. O programa cliente pode definir o método de processamento de eventos correspondente com base nessas informações de status. Os valores dos atributos e seus significados são mostrados na tabela a seguir:
Valor Descrição
0 O objeto Response foi criado, mas o processo de upload do documento XML ainda não foi finalizado.
1 O documento XML foi carregado
2 O documento XML foi carregado e está sendo processado.
3 Parte do documento XML foi analisada
4 O documento foi analisado e o cliente pode aceitar a mensagem de retorno.
O cliente processa as informações de resposta.
Após receber a mensagem de retorno, o cliente realiza um processamento simples, que basicamente completa um ciclo de interação entre C/S. O cliente recebe a resposta através dos atributos do objeto XMLHTTP:
● responseTxt: trata a mensagem de retorno como uma string de texto
● responseXML: trata a mensagem de retorno como um documento XML, utilizado quando a mensagem de resposta do servidor contém dados XML; trata a mensagem de retorno
como um documento XML
A mensagem retornada é tratada como um objeto Stream------esta é a seguinte função JAVASCRIPT muito simples SEND(STR,URL)------------- -
São usados objetos XMLDOM e XMLHTTP A vantagem de usar esta tecnologia é: controle JS completo, conveniente/simples, muito melhor que RDS ou remoto (Pré-requisito: tanto o servidor quanto o cliente devem ter IE5 ou superior instalado), o não. -atualizar informações on-line que postei A função também usa essa tecnologia. Amigos interessados podem dar uma olhada..
function Send(Str,URL)
//O parâmetro STR são os dados XML passados. Você também pode passar outros dados de texto.
//No entanto, esta função precisa ser processada pelo servidor e retornada aos dados XML. Você também pode modificá-la.
//O parâmetro URL representa o endereço do arquivo ASP dos dados que você deseja processar
{
var Http = new ActiveXObject("Microsoft.XMLHTTP") //Cria um objeto XMLHTTP var Dom = new ActiveXObject("Microsoft.XMLDOM") //Cria um objeto XMLDOM Http.open("POST",URL,false)
//O primeiro parâmetro significa enviar dados usando o método "POST". Pode ter até 4 MB ou pode ser alterado para "GET".
//O segundo parâmetro significa para qual arquivo os dados são enviados para processamento //O terceiro parâmetro significa modo síncrono ou assíncrono. TRUE significa assíncrono, FALSE significa síncrono Http.send(Str) //Iniciar o envio de dados.... .. ....... bip..
Dom.async=false //Definir para obter dados de forma síncrona Dom.loadXML(Http.responseText)
//Começa a obter os dados retornados após o processamento do lado do servidor. As configurações que defini aqui devem ser dados XML, caso contrário ocorrerá um erro.
//Você também pode modificá-lo para que os dados retornados sejam dados binários ou de conjunto de registros.......................... ..
if(Dom.parseError.errorCode != 0) //Verifica se ocorre um erro ao obter dados{
excluir (http)
excluir(Dom)
retornar (falso)
}
outro
{
var Voltar = Dom.documentElement.childNodes.item(0).text
//Obter os dados XML retornados. Presumo aqui que o manipulador retorna apenas uma linha de dados XML (um nó)
excluir (http)
excluir(Dom)
return(Back) //Função retorna dados.............End}
}
VAR CAT = Send("<User Information><Name>Xie Meng</Name></User Information>"," HTTP://WWW.CHINAASP.COM/VIVA.ASP ") //Executar função
SE(GATO == FALSO)
{
ALERT("Desculpe. O manipulador retornou FALSE. O processamento de dados falhou...")
}
OUTRO
{
SE(EVAL(CAT))
{
ALERT("OK. Os dados foram enviados com sucesso. E o processamento foi concluído!!!!!!")
}
OUTRO
{
ALERT("Desculpe. O manipulador retornou FALSE. O processamento de dados falhou...")
}
}
==============================VIVA.ASP=============== ==============
EM ERRO RETOMAR PRÓXIMO
DIM BOBO
DIM MOMO
DEFINIR BOBO = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
BOBO.ASYNC = FALSO
PEDIDO BOBO.LOAD
SE BOBO.PARSEERROR.ERRORCODE <> 0 ENTÃO
RESPONSE.WRITE("<Resultado do processamento do programa><Resultado final>FALSE</Resultado final></Resultado do processamento do programa>")
OUTRO
SET MOMO = BOBO.DOCUMENTEELEMENT
SE MOMO.CHILDNODES.ITEM(0).TEXT = "Xie Meng" ENTÃO
RESPONSE.WRITE("<Resultado do processamento do programa><Resultado final>TRUE</Resultado final></Resultado do processamento do programa>")
OUTRO
RESPONSE.WRITE("<Resultado do processamento do programa><Resultado final>FALSE</Resultado final></Resultado do processamento do programa>")
TERMINAR SE
TERMINAR SE
DEFINIR BOBO = NADA