我正在尝试从jquery使用Web服务方法,我在下面得到此错误
未捕获的SyntaxError:意外的令牌<
指向我的服务方法url。这是我的代码,
$("#btnDialog").click(function () {
var test = $("#hfID").val();
testService(test);
$("#dialog").dialog("open");
});
function testService(test) {
$.ajax({
crossDomain: true,
type: "POST",
url: "http://localhost:64461/Service1.asmx?op=HelloWorld",
data: test,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function(json) {
$("#lblID").text(json.responseText);
},
failure: function(response) {
alert("Did not work");
}
});
}
和网络服务方法是
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld(string id)
{
string toReturn = null;
if (string.IsNullOrEmpty(id))
{
toReturn = "recieved but nothing";
}
else
{
Class1 class1 = new Class1();
class1.GetName();
toReturn = class1.GetName();
}
return toReturn;
}
}
答案 0 :(得分:0)
试试这个:
function testService(test) {
$.ajax({
crossDomain: true,
type: "POST",
url: "http://localhost:64461/Service1.asmx/HelloWorld",
data: "{'id':'" + test + "'}",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function(json) {
$("#lblID").text(json.responseText);
},
failure: function(response) {
alert("Did not work");
}
});
}
答案 1 :(得分:0)
您的[WebMethod]
属性告诉端点返回XML。
您的JS代码要求JSON并期待JSONP响应。因此,响应中存在无效的令牌,即XML的第一个<
。
一种选择是处理XML而不是期待JSON。
另一个选项是包含ScriptMethod
属性以及WebMethod
属性,以便您可以控制响应。
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]