4

我正在尝试通过 DevBridge(http://www.devbridge.com/projects/autocomplete/jquery/)实现 Jquery 自动完成功能。这会进行 AJAX 调用,在他们的示例中它使用 .NET Web 服务。我打算使用网络方法。

我创建了一个名为 WebMethodTest.aspx 的页面,并向其中添加了一个简单的 Web 方法。代码如下:

using System;
using System.Web.Services;

public partial class WebMethodsTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e) { }

    [WebMethod]
    public static string Test()
    {
        return "blah blah blah";
    }
}

我没有在 web.config 中添加任何内容或进行任何其他设置。

通过浏览器和提琴手 ( http://myurl/WebMethodTest.aspx/Test ) 调用 URL 不会返回任何内容。

我假设我可以发出一个正常的 HTTP 请求,它会返回字符串“blah blah blah”。

请注意:我已经进行了广泛的搜索,看看是否有任何明显的我错过了。SO和其他地方有许多类似的问题,但许多都围绕格式错误的JSON等。我认为我的网络方法没有被调用。

所以:

  1. 发出正常的 HTTP 请求是检查 Web 方法的有效方法吗?如果没有,怎么办?
  2. 可以在没有客户端 AJAX 部分的情况下测试 Web 方法吗?

注意:我看到很多提到在 ScriptManager 中启用 Web 方法的“解决方案”——我认为这仅在使用 ASP.NET AJAX 时才相关(我不是)。

我剩下的头发越来越少了。欢迎所有建议:)

ta

编辑 我认为我正在测试的 URL(确实返回 JSON 字符串的第三方)可能不是 Web 方法。我认为我的也应该向浏览器返回响应——这是一个糟糕的假设。

正如@mgnoonan 所指出的,是否可以使用 Fiddler 的请求生成器发出 JSON 请求?, 具有使用 Fiddler 进行测试的正确语法。

我用的是:

POST http://xxx/WebMethods/WebMethodsTest.aspx/Test

User-Agent: Fiddler
Host: xxx
Content-Type: application/json; charset=utf-8
Content-Length: 0

这返回了预期的字符串。:)

PS有没有办法将评论标记为答案?

4

0 回答 0