如何从JavaScript调用WCF服务?
问题描述:
我在文件夹中的“服务” WCF服务:如何从JavaScript调用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);
错误:执行Microsoft Jscript时出错:“应用程序”不确定。 如何解决这个问题?
答
首先,通过直接导航到WCF服务来检查WCF服务是否工作正常。 http://localhost:(port-number)/Services/ProductTypeService.svc
我怀疑这不会工作,并给你一些错误。
其次,检查以确保jsdebug JavaScript文件已生成并包含在与应用程序一起加载的脚本中。
另一个人之前问过类似的问题。 How get namespace on javascript in asp.net web?
可能重复的[在asp,net web上的javascript如何获取命名空间?](http://stackoverflow.com/questions/8182501/how-get-namespace-on-javascript-in-asp-net-网) –