如何从javascript调用WCF服务

本文关键字:WCF 服务 调用 javascript | 更新日期: 2023-09-27 18:15:10

我在"Services"文件夹中有一个WCF服务:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Web.Services;
using System.ServiceModel.Activation;
using System.Web.Script.Services;
namespace Application.Services
{
    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    [ScriptService]    
    public class ProductTypeService
    {
        [OperationContract]
        [WebMethod]
        public string LoadMainGridProductType(string test)
        {
            return "Success";
        }
    }
}

在页面上,我尝试从javascript调用这个服务方法:

$(document).ready(function () {
    var counter = "test";    
    Application.Services.ProductTypeService.LoadMainGridProductType(counter, ResultLoadMainGridProductType, ErrorLoadMainGridProductType);
});

页面我也连接到这个服务和javascript文件:

<asp:ScriptManager ID="ScriptManager" runat="server">
            <Scripts>
                <asp:ScriptReference Path="~/Scripts/ProductType.js" />
            </Scripts>
            <Services>
                <asp:ServiceReference Path="~/Services/ProductTypeService.svc" />        
            </Services>
        </asp:ScriptManager>

但是

代码失败
Application.Services.ProductTypeService.LoadMainGridProductType(counter, ResultLoadMainGridProductType, ErrorLoadMainGridProductType);

Error: Error of implementation of Microsoft Jscript: "Application" is not certain如何解决这个问题?

如何从javascript调用WCF服务

首先,检查WCF服务是否正常工作,直接导航到它,例如http://localhost:(port-number)/Services/ProductTypeService.svc

我怀疑这不会工作,并给你一些错误。

其次,检查以确保jsdebug javascript文件已经生成,并且包含在应用程序加载的脚本中。

另一个人之前问过类似的问题。如何在asp.net web上获得javascript命名空间?