2014-01-06 28 views
-2

我需要做一些只能在服务器端处理的东西,而不是在html页面上使用javascript。我已经将这个过程用于其他aspx页面。但是,这次我需要在html页面上完成这项工作。在html页面加载,处理服务器端的东西,并将结果发送回html页面

到目前为止,我所做的解决方法是在我的html页面中的某处指定一个aspx页面。我在后面的代码上执行该过程,并在iframe的隐藏字段中保存我所需的内容。我现在可以从iframe中获取该值并将其用于我的html页面。

它的工作原理,但我认为可能有一个更简单的方法来做到这一点,而无需创建一个新的aspx页面只是为了处理。有没有另外一种方法来完成这个?

更新:具体而言,我需要获取页面加载用户的位置(国家),以相应地更改CSS。我知道我的网页上有很多网站可以连接到我的网站,但我不知道哪一个网站是安全的。此外,我们已经有我们自己的方法来为我们的aspx页面,所以我想用它来代替。希望此更新有所帮助。

+0

更简单的方法是使用'ajax' – Baby

+0

可以请你举个例子说明如何通过ajax做到这一点?处理方法已经完成。我只需要能够在HTML上调用它。 – jbdeguzman

+0

听起来像是会帮助你的东西是AJAX,但很难分辨出理想的解决方案,因为你目前的情况没有被详细描述。例如:为什么你不能在请求的页面中提供所有的信息(为什么你需要提出另一个请求)?为什么你需要一个隐藏的输入?你能向我们展示你现有代码的基本部分,并解释它为什么这样做吗? – Barney

回答

0

以下是我将如何做我认为你解释。你的问题不是很清楚。

http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

$.ajax({ 
     type: "POST", 
     url: "PageName.aspx/MethodName", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
     // Do something interesting here. 
     } 
    }); 

HTML

<html> 
    <head> 
     <title>Calling a page method with jQuery</title> 
     <script type="text/javascript" src="jquery-1.2.6.min.js"></script> 
     <script type="text/javascript" src="Default.js"></script> 
    </head> 
    <body> 
     <div id="Result">Click here for the time.</div> 
    </body> 
    </html> 

JS

$(document).ready(function() { 
     // Add the page method call as an onclick handler for the div. 
     $("#Result").click(function() { 
     $.ajax({ 
      type: "POST", 
      url: "Default.aspx/GetDate", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
      // Replace the div's content with the page method's return. 
      $("#Result").text(msg.d); 
      } 
     }); 
     }); 
    }); 

但同样我真的不知道你正在尝试做的。你真的很含糊。

0

是的,更简单的方法是ajax。

这是伪javascript代码...

window.onload = function(){ 
    ajax.open("your server url"); 
    ajax.on("success",function(){ 
     alert("okay, done."); 
    }); 
}; 
0

使用的iFrame为您所请求的过程中,不建议使用。

考虑使用AJAX将请求路由到服务器资源。在你的情况下,它应该是一个asp页面。

这里有一个初学者指南使用Ajax和ASP http://www.w3schools.com/asp/asp_ajax_asp.asp

PS:当使用AJAX确保你知道约

下面是一个供您使用的伪代码:

<script> 
function funcName(){ 
var xmlhttp; 
if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function() 
{ 
if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
document.getElementById("<yourOwnElement'sID>").innerHTML=xmlhttp.responseText; 
} 
} 
xmlhttp.open("GET","serverResource.asp?q="+<parameters>,true); 
xmlhttp.send(); 
} 
</script>