我正在尝试通过 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等。我认为我的网络方法没有被调用。
所以:
- 发出正常的 HTTP 请求是检查 Web 方法的有效方法吗?如果没有,怎么办?
- 可以在没有客户端 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有没有办法将评论标记为答案?