Ajax tem sido muito popular nos últimos anos, e a essência do Ajax é XMLHttpRequest, que é o uso de objetos XMLHttpRequest do lado do cliente. Comparado com o Ajax, o XMLHTTP do lado do servidor usa o objeto XMLHttpRequest no lado do servidor. Embora seja mais inconveniente usar solicitações assíncronas no lado do servidor, como um componente que pode enviar solicitações HTTP no lado do servidor, não há mal nenhum em aprender sobre isso.
Aqui, estou falando sobre o uso de XMLHttpRequest do lado do servidor em um ambiente ASP e o uso de JScript como linguagem para código de demonstração. Portanto, você precisa entender ASP e JScript.
XMLHTTP do lado do servidor é geralmente usado para obter páginas da web ou outro conteúdo de hosts remotos. Os sistemas de agregação de notícias geralmente usam objetos XMLHTTP do lado do servidor para obter o conteúdo do feed a ser agregado e, em seguida, usam objetos XMLDOM para analisar o conteúdo do. alimentar e recuperar os títulos das notícias, autor, conteúdo e outras informações são então armazenados no banco de dados e, em seguida, as notícias de diversas fontes de dados são exibidas juntas. Catch Shrimp é um agregador de notícias, mas não está escrito em ASP :)
Em ASP, podemos usar o código a seguir para criar um objeto ServerXMLHTTP, e esse objeto é a base para todas as operações que realizamos no lado do servidor.
Copie o código do código da seguinte forma:
var xmlhttp = novo ActiveXObject(MSXML2.ServerXMLHTTP.5.0);
Primeiro, vamos dar uma olhada nos métodos mais úteis do objeto ServerXMLHTTP:
1. abortar Este método é usado para cancelar solicitações XMLHTTP. Se o objeto XMLHTTP enviar uma solicitação de forma assíncrona, se a solicitação ainda não retornar após um determinado tempo, você poderá usar este método para cancelar a solicitação.
2. getAllResponseHeaders O valor de retorno deste método é uma string, que equivale ao cabeçalho da solicitação HTTP sem o método de solicitação, URI e informações de versão do protocolo.
3. getResponseHeader Este método é usado para obter as informações de cabeçalho especificadas. O mais útil é obter o Content-Type, Referer, etc. dos dados retornados.
4. open inicializa uma solicitação usando o método de solicitação especificado, URI, método de sincronização, informações de autenticação, etc.
5. send envia uma solicitação HTTP e aguarda o recebimento dos dados de resposta. Observe que se a solicitação for enviada de forma síncrona, o método send não retornará imediatamente após ser chamado, mas aguardará até que a solicitação seja concluída. solicitando em um método assíncrono, ele retornará imediatamente. Além disso, o método send possui um parâmetro opcional body, que representa os dados a serem enviados, o que é mais útil quando se utiliza o método POST.
6. setTimeout define os quatro tempos limite do objeto ServerXMLHTTP, que são: resolução de nomes de domínio, conexão ao servidor, envio de dados e recebimento de respostas. Você pode controlar o objeto ServerXMLHTTP definindo o período de tempo limite correspondente para evitar que o ServerXMLHTTP falhe ao retornar a tempo e faça com que o programa pare de responder.
7. setRequestHeader define o cabeçalho da solicitação No cliente XMLHttpRequest, geralmente é usado para definir o tipo de dados da solicitação ou identificar o método da solicitação, etc. Por exemplo, jquery adicionará o identificador de cabeçalho X-Request-With. para indicar que a solicitação é do objeto XMLHttpRequest Emitido para facilitar ao servidor a execução das ações correspondentes.
8. waitForResponse Ao enviar uma solicitação de forma assíncrona, você pode usar este método para controlar o processo de solicitação. Em scripts do lado do servidor, você não pode usar funções de retorno de chamada diretamente para controlar solicitações assíncronas como o cliente faz, e não há função correspondente para usar o programa para dormir por um determinado período de tempo, para aguardar a solicitação. retornar, podemos usar este método para esperar um determinado período de tempo.
Além disso, existem outros métodos, como getOption, setOption, setProxy, etc. Esses métodos raramente são usados, portanto, não serão apresentados aqui. Amigos que precisam saber mais podem consultar o MSDN.
A seguir, vejamos as propriedades do objeto ServerXMLHTTP:
1. onreadystatechange A função de retorno de chamada quando o estado do objeto XMLHTTP muda. Este atributo estabelece uma base para operações assíncronas, permitindo que o programa saiba se a operação XMLHTTP foi concluída sem consultar o estado do objeto XMLHTTP.
2. O status do objeto XMLHTTP readyState possui 5 valores, de 0 a 4, que representam respectivamente:
0 - Não inicializado, o estado do objeto quando ele acabou de ser criado usando o novo ActiveXObject (MSXML.ServerXMLHTTP.5.0)
1 - Carregando Neste momento, o método open foi chamado, mas o método send não foi utilizado para enviar dados.
2 - Já carregado, o método send foi chamado para enviar dados, mas ainda não há fluxo de resposta disponível.
3 - Interagindo e recebendo dados Neste momento, você pode utilizar os atributos responseBody e responseText para obter parte dos dados obtidos.
4 - Conclua a solicitação, todos os dados foram recebidos
Normalmente, só precisamos determinar o estado 4. Neste momento, todos os dados foram carregados e os dados necessários podem ser obtidos usando os atributos responseBody ou responseText.
3. Código de status de resposta HTTP, que em circunstâncias normais deve ser 200. Se o recurso solicitado não existir, 404 será retornado. Existem outros códigos de status, como erro de servidor 500, etc.
4. statusText Texto de status da resposta HTTP, usado para descrever o significado do código de status da resposta, como OK em 200 OK, Não encontrado em 404 Não encontrado
5. responseBody é a matriz de bytes dos dados de resposta. Pode ser usada diretamente em VBScript, mas precisa ser convertida em JScript.
6. responseText obtém dados de resposta em formato de texto
7. responseXML retorna os dados de resposta como um objeto XMLDOM, o que é particularmente útil quando os dados solicitados são um documento XML.
8. Objeto de fluxo de resposta responseStream, este atributo não é comumente usado