【问题标题】:Call web api url using jquery ajax from an asp.net web form page使用 jquery ajax 从 asp.net 网页表单页面调用 web api url
【发布时间】:2021-09-27 03:05:57
【问题描述】:

我有一个 web api 方法,它的 url 如下:

https://www.mycompany.es/webapi/deptartment/search/{partialDepartmentName}

此 Web api 方法返回一个 JSON,其中所有部门名称都包含 partialDepartmentName。

我已经使用 Telerik Fiddler Classic 进行了检查,方法是在下面输入 url 以搜索在作曲家中包含“财务”(不带双引号)的部门并使用 GET 动词(POST 不起作用)。

https://www.mycompany.es/webapi/deptartment/search/finance

它工作正常。现在我想使用我的 asp.net 网页表单页面中的 jQuery ajax 调用来做同样的事情,如下所示:

$.ajax({
        url: 'https://www.mycompany.es/webapi/deptartment/search/',
        type: 'POST',
        data: { "finance" } ,
        contentType: 'application/json; charset=utf-8',
        success: function (response) {
            alert(response.status);
        },
        error: function () {
            alert("error");
        }
    }); 

但它不起作用?我究竟做错了什么?对不起,我是网络开发的新手...

【问题讨论】:

  • 这在什么方面不起作用?使用浏览器的调试工具,控制台上是否有任何错误? AJAX 请求是在网络选项卡中发出的吗?服务器的响应是什么?您从这段代码中观察到什么结果?
  • 尝试使用response.d(“d”是返回的数据-它是asp.net的“qurik”)。
  • 为什么在你的 jQuery 中使用 POST 而在 Fiddler 中却不起作用?将类型更改为 GET 并将“财务”添加到 URL 的末尾。
  • @RomanK。是的,这有什么问题。用 GET 替换 POST 有效。我是网络编程的新手。调用 web api 方法时 POST 和 GET 有什么区别? Fiddler 使用 POST 失败,但使用 GET 工作。
  • 拉尔夫,我很高兴它起作用了。评论部分可能不是讨论 HTTP 方法之间差异的地方。基本上,POST 允许您将数据发送到 Web 服务器,而 GET 用于请求数据。网上有很多教程和解释。您可以从POST (HTTP) on Wikipeadia 开始。 API 不一定要同时支持这两种方法。

标签: jquery asp.net ajax webforms jquery-ajax


【解决方案1】:

网络方法是否需要/期望参数(看起来不需要)。

所以:

$.ajax({
    url: 'https://www.mycompany.es/webapi/deptartment/search/finance.aspx',
    type: 'POST',
    data: { "" } ,
    contentType: 'application/json; charset=utf-8',
    success: function (response) {
        alert(response.d);
    },
    error: function () {
        alert("error");
    }
}); 

请注意我们如何使用“.d” - 它会在 asp.net 中为您提供数据响应

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    相关资源
    最近更新 更多