我正在尝试将数据发布到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);
}
}
);
我认为我的网址是错误的。我怎样才能提供正确的网址。
提前致谢...
答案 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格式化。