我完全糊涂了。
- jquery v1.5.2 火狐 3.6.16 ASMX
- 项目清单
- 用 VS 2010、.Net Framework 3.5 编写的 Web 服务
- 托管在本地计算机的 VS 2010 开发 Web 服务器上或打开
- 在 Windows Web Server 2008 R2 上运行 IIS 7.5 的主 Web 服务器
本地开发 Web 服务器和主要生产 Web 服务器都表现出相同的行为
- 从浏览器调用 Web 服务时效果很好。
- 我得到了方法列表。
- 我可以点击方法名称
- 我可以单击Invoke按钮并调用方法并返回结果
当我的 jquery 页面调用相同的 web 方法时,会使用以下状态字段触发错误函数
就绪状态:0 响应文本:“”状态:0 状态文本:“错误”错误:函数()
我的 jQuery 部分
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'http://localhost:1272/ndtvservices.asmx/HelloWorld',
data: '{}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
alert("success " + msg) ;
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message) ;
}
});
});
</script>
我的网络方法
导入 System.Web.Services
导入 System.Web.Services.Protocols
导入 System.ComponentModel
导入 System.Web.Script.Services
导入 System.Web.Script.Serialization
' 要允许使用 ASP.NET AJAX 从脚本调用此 Web 服务,请取消注释以下行。'_
_
_ _
公共类 Service1 继承 System.Web.Services.WebService
'<ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=False, XmlSerializeString:=False)> _
<WebMethod()> _
Public Function HelloWorld() As String
Dim js As New JavaScriptSerializer
Dim s As String = "Hello World"
Dim sReturn As String = js.Serialize(s)
Return sReturn
End Function
结束类
我在 system.web 下的 web 配置有这些条目,因为我在某处读到 SO
<webServices>
<protocols>
<add name="HttpGet"></add>
<add name="HttpPost"></add>
</protocols>
</webServices>
_
我已经尝试过评论和取消评论上述声明。
据我了解,调用此方法的非 asp.net ajax 页面不需要这样做。
我究竟做错了什么?
谢谢一堆
最好的祝愿
艾尔