C# Ajax post web服务url错误

C# Ajax post web服务url错误,c#,jquery,ajax,web-services,C#,Jquery,Ajax,Web Services,我正在尝试将数据发布到web服务。并且该服务位于同一解决方案中的不同项目中。 此项目名称为WebServices,web服务的名称为HastaTahlilUyariService.asmx。 我的代码在这里: $.ajax( { type: "POST", url: "WebServices/HastaTahlilUyariService.asmx/f_HastaninAktaril

我正在尝试将数据发布到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);
                    }
                }
                );
我想我的网址错了。我怎样才能给出正确的url


提前感谢…

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

然后使用完全限定的url调用服务,如
http://localhost/myservice.asmx/function

做你想做的事情最简单的方法(我想是吧)

创建要在codebehind中调用的方法,如

[WebMethod]
public static object MethodToCallFromAjax(string argument)
{
   //do something
   return result;
}
然后将
ScriptManager
添加到您的aspx页面;并设置
enablePageMethods=true
。然后从JavaScript调用您的方法,如:

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

编辑:删除了一些关于json和asmx的不真实内容:-)

您可能希望将url更改为与当前位置无关的内容,例如
url:'/WebServices/…
(初始斜杠…)

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


除此之外,您需要确保已取消对asmx代码文件顶部几行中的
ScriptService
属性的注释。默认情况下,它会被注释掉,但需要在那里才能允许jQuery访问Web服务。

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


如果您提供完全限定的URL,情况是否有所改善?你在那个网址上得到了什么回应?可以使用FireBug之类的头监视器进行查看。不,完全可以通过jquery使用asmx Web服务。我一直都是这样做的,在这方面我也不是独一无二的。jQuery比asp.net自带的内置库更高效。我建议用它来代替。