我的asp.net web服务调用出了什么问题

本文关键字:什么 问题 调用 服务 asp net web 我的 | 更新日期: 2023-09-27 18:27:22

我正试图使用jquery中的web服务方法,但在下面收到了此错误

未捕获的语法错误:意外的标记<

它指向我的服务方法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");
        }
    });
}

并且web服务方法是

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;
    }
}

我的asp.net web服务调用出了什么问题

试试这个:

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");
    }
 });
}

[WebMethod]属性告诉端点返回XML。

您的JS代码正在请求JSON,并期望得到JSONP响应。因此,响应中有一个无效的令牌,即XML的第一个<

一种选择是处理XML,而不是期望使用JSON。

另一个选项是将ScriptMethod属性与WebMethod属性一起包含在上,以便控制响应。

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]