我是否需要使用Web服务与JQuery进行“Ajax”以获取JSON格式的数据

时间:2012-09-05 12:39:01

标签: jquery ajax json

我是否需要使用Web服务与JQuery进行“Ajax”以获取JSON格式的数据?同事们建议我使用“Httphandler”......最后,我想知道我是不是可以直接调用DataAccessLayer中的方法并将其传递给Ajax ......

我迷路了,请有人解释我如果我真的需要Web服务来使用JQuery进行Ajax 只有一台服务器(没有远程服务器),所以可能我不需要webservices?

3 个答案:

答案 0 :(得分:1)

您实际上并不需要单独的Web服务。您实际上可以在同一页面上执行AJAX。我对此有点生疏,所以请耐心等待,但你要做的就是:

  1. 从AJAX Control Toolkit中添加ToolkitScriptManager
  2. 在您的HTML中,只需在表单标记<asp:ToolkitScriptManager runat="server" EnablePageMethods="true"/>
  3. 之后添加
  4. [ScriptService]属性添加到您的网页类声明
  5. 在您要调用的方法中添加[ScriptMethod]属性。默认情况下,它以JSON格式传输,但您可以使用[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
  6. 响应XML
  7. 此方法需要是静态的,因为它应该在不重新运行页面呈现周期的情况下执行。
  8. 现在你只需要一些jQuery来调用函数
  9. [ScriptService]
    public class MyPage : Page
    {
       [ScriptMethod]
       public static string GetText() { return "Hello, world!"; }
    }
    
    <html>
    <!-- jQuery scripts -->
    <body>
    <script language="javascript">
       $.ready(function () {
    
       var text = PageMethods.GetText();
       $("#label1").value(text);
       });
    </script>
    <form runat="server">
    
      <asp:ToolkitScriptManager runat="server" EnablePageMethods="true"/>
      <asp:Label runat="server" ID="label1"/>
    
    </form>
    </body>
    </html>
    

答案 1 :(得分:0)

不,你没有。您需要做的就是

  • 在标题“application / json”
  • 中发送正确的内容类型
  • 重新安排服务器端输出以返回实际输出的JSON字符串表示

答案 2 :(得分:0)

您可以使用AJAX调用常规.aspx(我在asp.net中了解HttpHandler)页面。但在这种情况下,你正在做很多额外的工作(你必须停止常规的页面执行流程,确保你不返回一些垃圾,将响应转换为JSON等)同时-webservice不需要所有的基础设施常规页面(在asp.net中)需要,并且不会在服务器上产生额外负载。关于HttpHandler也一样。你只是在做你需要的东西,没有别的。