2012-05-17 45 views
1

請使用我以前的問題作爲參考。我已經標記了答案。客戶端撥打電話時出現故障

Question

我是一個.NET開發人員做了一個使用經典的ASP公司一些工作。我對服務器端開發的經驗是VB.NET或C#與某種MVC模式。考慮下面的代碼片斷,我把它寫在一個公司希望保留的ASP頁面中,並在需要此Web呼叫的其他頁面中「包含」。有點像一段可重複使用的代碼。出於理智的原因,我遺漏了一些。

//Create ActiveXObject, subscribe to event, and send request 
     var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 

     xmlHttp.onreadystatechange = function() { 
      if (xmlHttp.readyState == 4) { 
       xmlDoc.loadXML(xmlHttp.responseText); 
       debugger; 
       var JSON = $.xml2json(xmlDoc); 
       parseResponse(JSON); 
      } 
     } 

     urlToSend = encodeURI(REQUEST); 
     urlRest += urlToSend 
     xmlHttp.open("GET", urlRest, false); 
     xmlHttp.send(null); 

經過各種各樣的安全問題掙扎後,我很高興,當這最後工作。我更改了Internet選項中的設置,以允許腳本訪問其他域中的數據。我提出了我的解決方案,但公司必須在每臺機器上更改此設置才能使腳本正常工作。不是理想的解決方案。我可以做些什麼來使其在服務器而不是客戶端的瀏覽器上運行?

我對<%%>語法有一點認識,但不多。

+0

我希望有人認爲這有用的......對我來說,最容易的事情是建立一個輔助ASP頁負責與網絡進行交互服務。如果你使用的是JavaScript,請確保你指定了。 <%@ language = javascript%>或類似的上下文。再次使用<% %>並在那裏放置所有調用外部Web服務的邏輯並使用Response.Write返回Web服務響應。不管這些括號之間是什麼,都會像OnLoad一樣處理,當你調用這個頁面時,代碼將自動運行。在您的ASP頁面中,您要使用此信息。 – user1290284

+0

使用常規AJAX。 $ .ajax(url:「PageIJustCreated.asp?id1 = test&id2 = test。success:etc.等等)是的,你在同一個域的頁面上使用AJAX,這就是爲什麼它可以工作。正在執行代碼到外部Web服務服務器端,所以你最終沒有跨域問題。 – user1290284

回答

2

這太問題可以幫助你撥打服務服務器端: Calling REST web services from a classic asp page

總結,使用MSXML2.ServerXMLHTTP

Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP") 
HttpReq.open "GET", "Rest_URI", False 
HttpReq.send 

並檢查這些文章:

您還需要一種方法來parse JSON

+0

嗨,Jon,感謝你提供這些資源。我不需要做任何事情比包括CDN jQuery來解析我的迴應。這是不是在這裏工作嗎? – user1290284

+0

如果我沒有弄錯,是不是服務器端腳本在頁面加載時運行?我無法驗證頁面加載時的用戶輸入,我必須等到他們明確地點擊按鈕 – user1290284

+0

是的,服務器端腳本運行在頁面加載,但它也可以響應一個表單被髮布,即一個按鈕被單擊在表單標籤中運行,請查看這篇關於請求對象的文章,瞭解如何訪問用戶輸入http://www.codeguru.com/csharp/.net/net_asp/article.php/c19325/An-Overview-of - 經典 - 平均價格 - 請求 - Object.htm –

相關問題