Ajax发布Web服务url错误

时间:2009-12-30 14:17:41

标签: c# jquery ajax web-services

我正在尝试将数据发布到Web服务。而这项服务在同一解决方案的不同项目中。 此项目名称为WebServices,Web服务的名称为HastaTahlilUyariService.asmx。 我的代码在这里:

 $.ajax(
                {
                    type: "POST",
                    url: "WebServices/HastaTahlilUyariService.asmx/f_HastaninAktarilacakAlislabTestleri",
                    data: "{_sTcKimlikNo:" + Cell.innerHTML + ",_iKlinikKodu:18001,_bAy:12,_iYil:2009}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        alert(msg);
                    },
                    error: function(msg) {
                        alert( 'hata'+ msg);
                    }
                }
                );

我认为我的网址是错误的。我怎样才能提供正确的网址。

提前致谢...

3 个答案:

答案 0 :(得分:0)

首先:构建您的Web服务,并将其配置为在IIS Configuration Manager中以http://localhost/services/myservice.asmx之类的方式运行。打开IIS管理器,右键单击网站 - >新的虚拟目录;并导航到您的Web服务所在的文件夹。将虚拟目录命名为services

然后使用http://localhost/myservice.asmx/function等完全限定的网址调用该服务。

最简单的方法来做你想做的事(好吧,我猜)

创建要在代码隐藏中调用的方法,如

[WebMethod]
public static object MethodToCallFromAjax(string argument)
{
   //do something
   return result;
}

然后在您的aspx页面中添加ScriptManager;并设置enablePageMethods=true。然后从JavaScript调用您的方法,如:

PageMethods.MethodToCallFromAjax("argument value", function(msg) { alert(msg); });

编辑:删除了一些关于json和asmx的东西,这不是真的: - )

答案 1 :(得分:0)

您可能希望将您的网址更改为与您现在不相关的网址,例如url: '/WebServices/...(初始斜杠...)

使用firefox的firebug插件,您可以检查AJAX回调并查看正在请求的确切URL。您可以复制该URL,并且应该能够将浏览器指向asmx的URL(即没有最后一个参数,即方法名称)。

除此之外,您需要确保在asmx代码文件的前几行中取消注释ScriptService属性。它默认被注释掉,但它需要允许jQuery访问web服务。

答案 2 :(得分:-1)

另一个需要考虑的选项是内置于浏览器中的标准XMLHttpRequest对象(对于IE 6,您必须使用具有相同名称的ActiveX对象)。它使调用XML服务变得非常简单,尽管你最终必须自己进行一些SOAP格式化。

Wikipedia entry for XMLHttpRequest