簡體   English   中英

如何將服務器端ASP XmlHttpRequest代碼轉換為客戶端JavaScript?

[英]How do I convert my server-side ASP XmlHttpRequest code to client-side JavaScript?

我使用下面的ASP代碼的XML請求

<%
pXML=Server.URLencode(SearchRequest)
set xmlhttp = server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhtt.open "post", http://OutSideDomain/xml_requests , false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send  "xml_request=" &pXML
htresult = xmlhttp.responsexml.xml    
%>

我嘗試用javascript(Ajax)編寫以上代碼

<script type="text/javascript">
function loadXMLDoc()
{
var xmlHttp;

try
  {  
  xmlHttp=new XMLHttpRequest();  }
catch (e)
  { 
   try
    {    
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");   
     }
  catch (e)
    {   
     try
      {     
       xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");   
          }
    catch (e)
      {      
      alert("Your browser does not support AJAX!");      
      return false; 
           }    
           } 
            }
  xmlHttp.onreadystatechange=function()
    {
    if(xmlHttp.readyState==4)
      {
      alert(xmlHttp.responseText);
      }
    }   

    var params ='xml_request=' +'<%=pXML>';
    xmlHttp.open("POST","http://OutSideDomain/xml_requests",true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", params.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(params);

   }
</script>

上面的asp代碼可以正常工作並獲取xml響應,

但是在javascript中,我得到的錯誤是xmlHttp.send(params);之類的“訪問被拒絕” xmlHttp.send(params);

“訪問被拒絕”有什么問題?,

我在這里說從一個HTTP到另一個HTTP是不可能的...但是那東西在我的ASP頁面中起作用。

我該如何解決?

希望你的回應

問題在於上下文的不同。 您的JavaScript代碼正在客戶端運行,因此必須遵循Same Origin Policy 您的ASP代碼正在服務器端運行,因此不是。

您現在基本上不能從客戶端執行此操作,盡管正在進行的舉措將使有限的跨站點通信成為可能。 目前,最好還是繼續在服務器端執行此操作(盡管這會導致帶寬消耗)。

或者,如果您嘗試訪問的源提供了JSONP接口,則可以使用該接口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM