javascript - 如何将服务器端 ASP XmlHttpRequest 代码转换为客户端 JavaScript?

标签 javascript asp-classic xmlhttprequest

我使用下面的 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);

“拒绝访问”是什么问题?,

我在这里从一个 HTTP 到另一个 HTTP 是不可能的......但是那个东西在我的 asp 页面中工作..

我如何解决这个问题?

希望得到您的回应

最佳答案

问题是语境的不同。您的 JavaScript 代码在客户端运行,因此受制于 Same Origin Policy .您的 ASP 代码在服务器端运行,所以它不是。

虽然有 initiatives going on,但您现在基本上不能从客户端执行此操作这将使一些有限的跨站点通信成为可能。目前,您最好继续在服务器端执行此操作(尽管会产生带宽成本)。

或者,如果您尝试访问的来源提供了一个 JSONP接口(interface),你可以使用它。

关于javascript - 如何将服务器端 ASP XmlHttpRequest 代码转换为客户端 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2306193/

相关文章:

javascript - 经典 ASP + JavaScript

javascript - 请求 api.upcitemdb.com 端点时出现 CORS 错误

javascript - 将 X-CSRF-Token header 全局添加到 XMLHttpRequest() 的所有实例;

javascript - 正则表达式匹配特定长度的特定数字组?

asp-classic - 如何正确报告/处理经典的 asp 页面错误和数据库错误

javascript - 如何与组件的聚合交互

javascript - 简单的 JavaScript 代码不起作用

javascript - 如何使用 javascript 下载此文件?

javascript - 为什么我们在 jquery 中使用 $(this)

javascript - 带有 Observables 的 AngularFire2 没有捕获 $ref 属性