【问题标题】:Sending information between JavaScript and Web Services using AJAX使用 AJAX 在 JavaScript 和 Web 服务之间发送信息
【发布时间】:2011-09-20 13:30:32
【问题描述】:

好的,所以我正在使用 Microsoft 的 Web 服务和 AJAX 从 SQL 数据库中获取信息,以便在客户端与 java 脚本一起使用。我想知道最好的方法是什么。在我开始处理该项目之前,Web 服务已设置为返回一个 C# 列表,其中填充了一些对象。这些对象变量(整数、字符串等)包含我要使用的数据。当然,据我所知,java 脚本对此无能为力。

然后我修改了 Web 服务以返回 2D 数组,但 java 脚本变得混乱,据我所知,无法处理从 C# 返回的 2D 数组。然后我尝试使用常规数组,但后来发现 JS 中数组的长度属性没有继承,所以我无法通过所有项目执行 for 循环,因为无论如何都不知道如何有很多元素。

我唯一能做的就是返回一个带有特殊字符的字符串来分隔数据,但这似乎太复杂了。有什么建议?提前致谢!

【问题讨论】:

    标签: c# javascript ajax web-services


    【解决方案1】:

    编辑

    首先,我假设您使用的是基于 SOAP 的 Web 服务。通过 SOAP,我或多或少是在谈论一个 Web 服务(在本例中为 C#),它生成 XML 消息以接受数据请求并从这些请求中发回结果。您可以在此处阅读有关 SOAP 的更多信息:http://en.wikipedia.org/wiki/SOAP

    从 C# Web 服务转到 C# 客户端应用程序相当简单,因为 Visual Studio 会自动为您的客户端应用程序生成一个使用者类。此处的示例:http://my.execpc.com/~gopalan/dotnet/webservices/webservice_csharp_client.html(尽管我认为 Visual Studio 的集成比此示例显示的要好)。

    或多或少,您的 JavaScript 需要为您的 WebService 生成适当的 SOAP 请求 (XML) 以了解您要调用的方法。在它被调用之后,您需要使用 JavaScript 来解析响应(也是 XML)以获得您想要的数据(jQuerygreat for this)。

    这是一个库,可帮助您发出请求并从您的网络服务器获得响应。 http://www.ibm.com/developerworks/webservices/library/ws-wsajax/

    这是一个关于同一主题的类似问题,有一个很好的例子:Simplest SOAP example

    如果这是您要找的,请告诉我。希望对您有所帮助!

    原创

    您的数据(二维数组、列表等)正在序列化为 XML。

    因此,您将需要您的 Javascript 来解析 XML,而不是将其视为文字 C# 对象。

    或者像keatch所说,返回JSON

    【讨论】:

    • 我很难找到有关使用 XML 执行此操作的大量信息,您知道有什么好的资源吗?谢谢!
    • 这非常有帮助!再次感谢!
    【解决方案2】:

    在您的服务中试试这个:

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public List<SomeObject> name()
    {
        ....
    }
    

    【讨论】:

      【解决方案3】:

      尝试返回一个JSON 数组。 JSON 是传递 javascript 对象的标准表示法。

      参考此链接:http://www.codeproject.com/KB/aspnet/CSJSON.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-05
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-11
        相关资源
        最近更新 更多