【问题标题】:Ajax post web service url errorAjax 发布 Web 服务 url 错误
【发布时间】:2009-12-30 14:17:41
【问题描述】:

我正在尝试将数据发布到 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,情况会改善吗?你在那个网址上得到什么回应?可以使用 FireBug 之类的 header 监视器来查看。

标签: c# jquery ajax web-services


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    做你想做的事情的最简单的方法(嗯,我猜)

    在代码隐藏中创建你想调用的方法

    [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 的不正确的东西 :-)

    【讨论】:

    • 不,完全可以通过 jquery 使用 asmx webservices。我一直都这样做,而且在这方面我也不是很独特。
    • jQuery 比 asp.net 自带的内置库更高效。我建议改用它。
    【解决方案3】:

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

    Wikipedia entry for XMLHttpRequest

    【讨论】:

      猜你喜欢
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 2016-03-03
      相关资源
      最近更新 更多