Objetos XMLHTTP e seus métodos———————————
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:
Defina objXML = CreateObject("Msxml2.XMLHTTP") ou
Definir objXML = CreateObject("Microsoft.XMLHTTP")
'Ou, para a versão 3.0 do XMLHTTP, use:
' Definir xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
Depois que o objeto for criado, chame o método Open para inicializar o objeto Request. O formato da sintaxe é:
poster.open método http, url, assíncrono, ID do usuário, senha
O método Open contém 5 parâmetros, os três primeiros são necessários e 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 é especificado na URL
assíncrono: um sinalizador booleano que indica se a solicitação é assíncrona. Se for modo de comunicação assíncrona (verdadeiro), o cliente não espera a resposta do servidor; se for modo síncrono (falso), o cliente deverá esperar até que o servidor retorne uma mensagem antes de realizar outras operações.
userID ID do usuário usado para autenticação do servidor
senha Senha do usuário, usada para autenticação do servidor
Após o método Send do objeto XMLHTTP inicializar o objeto Request com o método Open, chame o método Send para enviar os dados XML:
poster.send dados XML
O tipo de parâmetro do método Send é Variant, que pode ser uma string, uma árvore DOM ou qualquer fluxo de dados. 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:
Descrição do valor
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 das propriedades do objeto XMLHTTP:
● responseTxt: retorna a mensagem 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;
● responseStream: trata a mensagem retornada como um objeto Stream.
O seguinte arquivo xml é gerado dinamicamente e finalmente enviado usando xmlHTTP. Este é o conteúdo do script JavaScript do cliente. Claro, você também pode escrevê-lo no servidor, mas algumas coisas precisam ser alteradas de acordo: (apenas para sua referência. , entenda seu uso)
var xmlDoc=new ActiveXObject("MSXML2.DOMDocument");
flag=xmlDoc.loadXML("");
newNode =xmlDoc.createElement("codificação")
MarkNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartMark")
newNode.text=StartMark;
MarkNode.appendChild(novoNode)
newNode =xmlDoc.createElement("EndMark")
newNode.text=EndMark;
MarkNode.appendChild(novoNode)
newNode =xmlDoc.createElement("Data")
DateNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("DataInício");
newNode.text=DataInício;
DateNode.appendChild(newNode)
novoNode =xmlDoc.createElement("EndDate")
newNode.text=EndDate;
DateNode.appendChild(newNode);
newNode =xmlDoc.createElement("Quantidade")
SLNode =xmlDoc.documentElement.appendChild(newNode);
novoNode =xmlDoc.createElement("StartSL")
newNode.text=StartShuL
SLNode.appendChild(novoNode)
newNode =xmlDoc.createElement("EndSL");
newNode.text=EndShuL
SLNode.appendChild(novoNode);
newNode =xmlDoc.createElement("preço unitário")
DJNode =xmlDoc.documentElement.appendChild(newNode)
novoNode =xmlDoc.createElement("StartDJ")
newNode.text=StartDanJ;
DJNode.appendChild(newNode);
novoNode =xmlDoc.createElement("EndDJ")
newNode.text=EndDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("quantidade")
JENode =xmlDoc.documentElement.appendChild(newNode)
novoNode =xmlDoc.createElement("StartJE")
newNode.text=StartJinE
JENode.appendChild(newNode)
novoNode =xmlDoc.createElement("EndJE")
newNode.text=EndJinE
JENode.appendChild(newNode)
newNode =xmlDoc.createElement("código do armazém")
novoNode.text=CK;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("número do bilhete")
novoNode.text=RKPH;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("código da unidade")
newNode.text=CorpName;
xmlDoc.documentElement.appendChild(newNode)
novoNode =xmlDoc.createElement("BiaoShi")
newNode.text=Biaoshi
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("FindCate")
newNode.text=FindCate
xmlDoc.documentElement.appendChild(newNode)
var xh = novo ActiveXObject("MSXML2.XMLHTTP")
xh.open("POST","Localizar.asp",falso)
xh.setRequestHeader("Tipo de conteúdo","texto/xml")
xh.setRequestHeader("Tipo de conteúdo","gb2312")
xh.send(xmlDoc);
O valor de texto de cada um dos meus newNode é uma variável, que é o valor inserido no meu formulário de cliente.