【发布时间】:2011-04-10 10:38:33
【问题描述】:
我使用协议 jsonp 来调用 web 方法。
我将此代码用于网络服务:
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod]
public string HelloWorld()
{
return "Hello World";
}
}
这在 Jquery 上,客户端有 jason:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: 'http://localhost:50837/Service1.asmx/HelloWorld',
data: {},
dataType: "json",
success: function(Msg) {
alert('success:' + Msg.d.FirstName);
},
error: function(xhr, textStatus, errorThrown) {
alert("error");
}
});
}
这个 Jquery 总是给我一个错误信息,但我不知道原因。 有人可以帮助我吗?
【问题讨论】:
-
将
alert("error")更改为alert(textStatus + " - " + errorThrown)对于初学者 :) -
为什么你使用像'localhost:50837/Service1.asmx/HelloWorld'而不像'/Service1.asmx/HelloWorld'这样的url?如果其他网站上的 web 服务和你的 JavaScript 程序?您在当前代码中的哪些地方使用了 jsonp?
-
我有 2 个项目,一个带有 WS,另一个带有页面 asp。我需要像这样调用 WS 'localhost:50837/Service1.asmx/HelloWorld',因为如果我输入 url: '/Service1.asmx/HelloWorld' 给我:找不到错误 404
-
错误抛出给我未定义...我不知道为什么
-
您应该将 Web 服务作为网站的一部分。如果您不这样做,您的代码将由于同源策略问题而无法工作(请参阅en.wikipedia.org/wiki/Same_origin_policy)。您可以在同一个站点上放置多个应用程序 ASP.NET MVC、ASPX Web 服务和 WCF 服务,它们可以很好地协同工作。这是没有更复杂的 JSONP 的唯一方法。在您的情况下,JSONP 过大。
标签: jquery ajax json webmethod