没有调用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"。我确信,如果调用该方法,我不会得到错误。
我觉得你的URL应该是
url: "Your FolderName/PageName/Function Name",
url: "myaddress/SaveOpinion.aspx/SaveOpinion"
但是在你的代码中这是不同的,所以请检查
您是否检查了方法SaveOption
是否返回一些东西给客户端?如果您指定dataType为json,您应该(至少)返回:{}
好所以我们"解决"。我们刚找到了一种很管用的权宜之计。
我们制作了一个自定义处理程序(.ashx),我们在架构中将其定义为SaveOpinion。aspx页面。
然后我们用jQuery调用这个自定义处理程序页面,如果它工作,我们显然必须手动传递所有必要的参数,即。使用jQuery从textbox等获取所有值,而不是像以前那样从上下文获取。
因为这是在某种线程中运行的(我真的不知道细节),我们必须配置它,以便它模拟相同的用户身份验证。
无论如何,我希望这能为那些有这种模糊问题的人提供一些指导。