導航:首頁 > IDC知識 > 伺服器xmlhttp

伺服器xmlhttp

發布時間:2021-02-12 15:12:41

1、伺服器不支持XMLHTTP是咋回事

伺服器默認的是顯示錯誤信息的,去掉 "HTTP友好錯誤."是客戶端的瀏覽器的事情,IE設置自己找下,FireFox默認的是顯示錯誤的信息的.

2、如何利用XMLHttpRequest實現向伺服器發送請求

使用XMLHttpRequest對象自發送請求的基本步驟如下:

1. 為得到XMLHttpRequest對象實例的一個引用,可以創建一個新的實例,也可以訪問包含有XMLHttpRequest實例的一個變數。
2. 告訴XMLHttpRequest對象,哪個函數會處理XMLHttpRequest對象狀態的改變,為此要把對象的onreadystatechange屬性設置為指向JavaScript函數的指針。
3. 指定請求的屬性。XMLHttpRequest對象的open()方法會指定將發出的請求。open()方法取3個參數:一個是指示所用方法(通常是GET或POST)的串;一個是表示目標資源URL的串;一個是Boolean值,指示請求是否是非同步的。
4. 將請求發送給伺服器。XMLHttpRequest對象的send()方法把請求發送到指定的目標資源。send()方法接受一個參數,通常是一個串或一個DOM對象。這個參數作為請求體的一部分發送到目標URL。當向send()方法提供參數時,要確保open()中指定的方法是POST。如果沒有數據作為請求體的一部分被發送,則使用null。

3、如何通過使用 XMLHTTP 或 ServerXMLHTTP 對象提交窗體數據

ServerXMLHTTP 對象的分步說明

確保伺服器上有 MSXML 3.0 或更高版本的解析程序,已經運行了代理配置實用程序,並且已經正確設置。有關更多信息,請參閱本文的「參考」部分。
將下列代碼復制到名為ServerHTTP.asp 的新 Active Server Page (ASP) 頁中。將該 ASP 頁放到默認的主目錄中。
<%@ Language=vbScript%>
<%
DataToSend = "id=1"
dim xmlhttp
set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST","ocalhost/Receiver.asp",false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send DataToSend
Response.ContentType = "text/xml"
Response.Write xmlhttp.responsexml.xml
Set xmlhttp = nothing
%>
備註:由於線程處理問題,兩個 ASP 文件應位於不同的虛擬文件夾中。

如 果池設置為「Low」(低)或「Medium」(中)(這是 Microsoft Windows 2000 的默認設置),應在另一個虛擬文件夾中 POST 到 ASP。如果 ASP 在同一個虛擬文件夾中,ASP 將停止響應(掛起)。關閉瀏覽器後,該 ASP 和其他 ASP 將繼續掛起,因為即使關閉瀏覽器,請求仍然在隊列中。必須重新啟動 IIS 或重新啟動計算機。

如果將池更改為「High」(高),可以再次對遠程 ASP 運行這段代碼,因為使用的是新線程。

將下列代碼復制到名為Receiver.asp 的新 ASP 頁中。將該 ASP 頁放到默認的主目錄中。
<%@language=vbscript%>
<%
value = Request.Form("id")
Response.ContentType = "text/xml"
response.write "<ReturnValue>" & value & "</ReturnValue>"
%>

發布時,請務必使用伺服器名而不是 Localhost,而且被 XMLHttp 打開的 URL 也應當包含同一伺服器名。

確保「POST」指向正確的位置。
單擊Submit(提交) XMLHTTP 按鈕。
如果只是在客戶端腳本中使用XMLHTTP 對象,必須遵守同樣的頭信息和數據格式。
XMLHTTP 對象的分步說明

將下列代碼復制到名為ClientHTTP.asp 的新 ASP 頁中。將該 ASP 頁放到默認的主目錄中。
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--

function XMLHTTPButton_onclick() {
var DataToSend = "id=1";
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("POST"," <%=Request.ServerVariables("Server_Name")%>/Receiver.asp",false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(DataToSend);
alert(xmlhttp.responseXML.xml);
}

//-->
</SCRIPT>

<INPUT type="button" value="Submit XMLHTTP" id=XMLHTTPButton name=XMLHTTPButton
LANGUAGE=javascript onclick="return XMLHTTPButton_onclick()">

從前面概述的ServerXMLHTTP 步驟的第 3 步中創建頁面。
確保「POST」指向正確的位置。
在瀏覽器中載入ClientHTTP.asp 。轉載,僅供參考。

4、我進一個網站說您的瀏覽器不支持XMLHTTP是什麼意思啊?怎麼辦?

最通用的定義為:XmlHttp是一套可以在Javascript、VbScript、Jscript等腳本語言中通過http協議傳送或從接收XML及其他數據內的一套容API。XmlHttp最大的用處是可以更新網頁的部分內容而不需要刷新整個頁面。來自MSDN的解釋:XmlHttp提供客戶端同http伺服器通訊的協議。客戶端可以通過XmlHttp對象(MSXML2.XMLHTTP.3.0)向http伺服器發送請求並使用微軟XML文檔對象模型Microsoft XML Document Object Model (DOM)處理回應。現在的絕對多數瀏覽器都增加了對XmlHttp的支持,IE中使用ActiveXObject方式創建XmlHttp對象,其他瀏覽器如:Firefox、Opera等通過window.XMLHttpRequest來創建xmlhttp對象。

5、當伺服器返回一個xml文檔時,網頁中的xmlhttprequest對象最好使用什麼屬性獲取這個

由於現在在公司負責製作標準的靜態頁面,為了增強客戶體驗,所以經常要做些AJAX效果,也學你也和我一樣在,學習AJAX。而設計AJAX時使用的一個重要的技術(工具)就是XMLHTTPRequest對象了。這裏海嘯把我學習XMLHTTPRequest對象的一點資料拿出來跟大家一起分享。文中的資料都是海嘯在學習時在網上收集的,如果您開過,那就再加深下印象吧!(如果您覺得侵犯了您的版權,請聯系海嘯。(haixiao_yao[at]yahoo.com.cn))

1、XMLHTTPRequest對象什麼是?

最通用的定義為:XmlHttp是一套可以在Javascript、VbScript、Jscript等腳本語言中通過http協議傳送或從接收XML及其他數據的一套API。XmlHttp最大的用處是可以更新網頁的部分內容而不需要刷新整個頁面。(這個功能正是AJAX的一大特點之一:))

來自MSDN的解釋:XmlHttp提供客戶端同http伺服器通訊的協議。客戶端可以通過XmlHttp對象(MSXML2.XMLHTTP.3.0)向http伺服器發送請求並使用微軟XML文檔對象模型Microsoft? XML Document Object Model (DOM)處理回應。

這里說些題外話,其實這個東西很早就出現了,只是以前瀏覽器的支持不夠,只有IE中才支持,所以大多數的WEB程序員都沒有怎麼用他,但是現在情況發生了很大地改變,Mozilla和Safari把它採用為事實上的標准,主流的瀏覽器都開始支持XMLHTTPRequest對象了。但是這里需要重點說明的是XMLHTTPRequest目前還不是一個W3C的標准,所以在不同的瀏覽器上表現也稍有些區別。

2、創建XMLHTTPRequest對象

對了,說到區別,我們這里來看看怎麼來聲明(使用)它,在使用XMLHTTPRequest對象發送請求和處理響應之前,我們必須要用javascript創建一個XMLHTTPRequest對象。(IE把XMLHTTPRequest實現為一個ActiveX對象,其他的瀏覽器[如Firefox/Safari/Opear]則把它實現為一個本地的javascript對象)。下面我們就來看看具體怎麼運用javascript來創建它吧:

<script language="javascript" type="text/javascript">
<!--
var xmlhttp;
// 創建XMLHTTPRequest對象
function createXMLHTTPRequest(){
if(window.ActiveXObject){ // 判斷是否支持ActiveX控制項
xmlhttp = new ActiveObject("Microsoft.XMLHTTP"); // 通過實例化ActiveXObject的一個新實例來創建XMLHTTPRequest對象
}
else if(window.XMLHTTPRequest){ // 判斷是否把XMLHTTPRequest實現為一個本地javascript對象
xmlhttp = new XMLHTTPRequest(); // 創建XMLHTTPRequest的一個實例(本地javascript對象)
}
}
//-->
</script>

3、屬性和方法

由於東西太多現在先用個頁面來列舉出說有的方法和屬性,以後再來詳細舉例(主要是本人也在學習中)。

<html>
<head>
<title>XMLHTTPRequest對象的說明DEMO</title>
<script language="javascript" type="text/javascript">
<!--
var xmlhttp;
// 創建一個XMLHTTPRequest對象
function createXMLHTTPRequext(){
if(window.ActiveXObject) {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
else if(window.XMLHTTPRequest){
xmlhttp = new XMLHTTPRequest();
}

6、求xmlhttprequest實例,包含伺服器端代碼,能簡單的互發hello world就行。

樓主啊,你說的這個其實是C/S裡面的Ajax的東東了,其實實現不難,通過js實現的,核心對象肯定是XMLHttpRequest了,好了編寫代碼吧,首先編寫兩個頁面,一個html(login.html)頁面,一個ashx(Login.ashx)(一般處理程序,或者aspx也行),html頁面的頭部標簽<head></head>中編寫<script>代碼
<script type="text/javascript">

window.onload=function(){
//創建ajax非同步對象

var xhr=new XMLHttpRequest();

//設置非同步對象的屬性,傳遞方式get,請求頁面Login.ashx,是否開啟非同步

xhr.open("get","Login.ashx?type=p",true);

//設置get方式不使用瀏覽器緩存

xhr.setRequestHeader("If-Modified-Since","0");

//設置回調函數

xhr.onreadystatechange=function(){
//如果xhr接收完數據

if(xhr.readyState==4){
//判斷響應狀態嗎是否為200,表示成功接收伺服器發來的數據
if(xhr.status==200){
//獲取伺服器發送來的數據,因為使用的是get方式,所以用responseText,如果用post方式的話就用requestText
var str=xhr.response.Text;

//列印一下,看是否成功,肯定是成功了,在這下面寫你要加的邏輯代碼吧

aler(str);

}
}
}

xhr.send(null);

}

</script>

好了,伺服器端的一般處理程序的代碼如下:

//獲取瀏覽器端發送過來的數據

string str=context.Request.QueryString["type"];

//判斷是否為空

if(str!=null)

{
if(str=="p")

{
//表明傳遞過來的xhr.open("get","Login.ashx?type=p",true);這個裡面的參數type=p成功傳遞,下面就向客戶端輸出東西吧,~~~~輸出Hello World吧(寄託了程序員美好的願望)

context.Response.Write("Hello World~~讓世界更有愛");

}

}
-----------------------------------華麗的分割線----------------------------
哦,對了,到此所有代碼完畢,樓主需要互發Hello World,其實很簡單,非同步對象的open屬性中的
xhr.open("get","Login.ashx?type=p",true);改為type=hello world,,然後一般處理程序Login.ashx,的判斷if(str=="p")改為,if(str=="hello world"),OK,搞定!

7、如何在 IIS 伺服器上的 ServerXMLHTTP 請求對象中安裝客戶端證書

P12格式的正式應該是pfx後綴的文件,這個證書是包含公私鑰對的證書文件,根證書肯定不專是這個格式的,應該是一個屬cer格式的文件。首先,你需要把這個根證書導入到控制台中(MMC-添加單元-證書-計算機賬戶-本地計算機),添加到第三方受信任證書頒發機構中,在客戶端和伺服器端的控制台都導入這個證書。在IIS中導入伺服器證書,那個PKCS#12的證書。並在設置中選擇要求客戶端證書,這個就不細說了。然後在客戶端雙擊用戶證書,導入用戶證書,在向導中導入位置選擇個人。然後訪問即可

8、伺服器怎麼才能支持 XMLHTTP

http://v.ku6.com/show/llvKOqWD7dy6Nom5WIzYEw...html

9、用xmlhttp可以獲取別人伺服器的網頁嗎?

xmlhttp獲取的內容抄其實和你用襲IE直接打開人家的網頁所得到的內容是一樣的。
它只能得到遠程伺服器最終輸出的內容。而不是服務端代碼。ASP,JSP,PHP等代碼是在遠程伺服器內部執行的,不會被xmlhttp遠程獲取。

與伺服器xmlhttp相關的知識