没有调用Ajax web方法

本文关键字:web 方法 Ajax 调用 | 更新日期: 2023-09-27 17:50:48

在我的。net应用程序中总共进行了四个Ajax调用。除了最后一个,其他三个都工作得很顺利。

注意:我必须使用。aspx这些调用,而不是mypage。Aspx/mymethod,因为我们的架构限制。

Ajax调用工作:

$.ajax({
    type: "POST",
    url: "myaddress/GenerateOpinionHTML.aspx",
    data: JSON.stringify({ id: featureId, pageNumber: pageNumberIndex }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        SOME PROCESSING (IT WORKS)
    },
    error: function (xhr, status, error) {
        var err = xhr.responseText;
        console.log(err);
    }
});

[WebMethod]
public static string GenerateOpinionHTML(int id, int pageNumber)
{
    // ...
}

Ajax调用不起作用:

console.log("SUBMITOPINIONCLICK");
var param = " ";
$.ajax({
    type: "POST",
    url: "myaddress/SaveOpinion.aspx",
    data: JSON.stringify({ parameter: param}),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        console.log("SAVE OPINION SUCCESSFUL");
        console.log(msg.d);
        CloseLB('GiveOpinionLB');
    },
    error: function (xhr, status, error) {
        var err = xhr.responseText;
        console.log("ERROR " + "STATUS: " + status);
    }
});

[WebMethod]
public static string SaveOpinion(string parameter)
{
    // ...
}

日志显示web方法SaveOpinion没有被调用。你有什么想法或建议吗?我试着添加参数,不添加参数,检查我的网页。配置文件(虽然我不应该有,因为其他调用工作)…

我在浏览器控制台上得到的错误是"parseerror"。我确信,如果调用该方法,我不会得到错误。

没有调用Ajax web方法

我觉得你的URL应该是

url: "Your FolderName/PageName/Function Name",

url: "myaddress/SaveOpinion.aspx/SaveOpinion"

但是在你的代码中这是不同的,所以请检查

您是否检查了方法SaveOption是否返回一些东西给客户端?如果您指定dataType为json,您应该(至少)返回:{}

好所以我们"解决"。我们刚找到了一种很管用的权宜之计。

我们制作了一个自定义处理程序(.ashx),我们在架构中将其定义为SaveOpinion。aspx页面

然后我们用jQuery调用这个自定义处理程序页面,如果它工作,我们显然必须手动传递所有必要的参数,即。使用jQuery从textbox等获取所有值,而不是像以前那样从上下文获取。

因为这是在某种线程中运行的(我真的不知道细节),我们必须配置它,以便它模拟相同的用户身份验证。

无论如何,我希望这能为那些有这种模糊问题的人提供一些指导。