Javascript 未使用$.ajax调用aspx的代码隐藏函数
我有一个网页表单IndexPage.aspx。此前端代码的脚本部分使用ajax调用调用代码隐藏函数。代码如下:Javascript 未使用$.ajax调用aspx的代码隐藏函数,javascript,jquery,asp.net,ajax,Javascript,Jquery,Asp.net,Ajax,我有一个网页表单IndexPage.aspx。此前端代码的脚本部分使用ajax调用调用代码隐藏函数。代码如下: $.ajax({ type: "POST", url: '<%=ResolveUrl("~//IndexPage.aspx//SaveXml")%>', data: JSON.stringify(logic), contentType
$.ajax({
type: "POST",
url: '<%=ResolveUrl("~//IndexPage.aspx//SaveXml")%>',
data: JSON.stringify(logic),
contentType: "application/json; charset=utf-8",
dataType: "json",
//async: true,
//cache: false,
success: function (msg) {
alert("AJAX received : " + msg.d);
},
error: function (msg) {
alert("Failed : " + msg.d);
}
});
未调用此代码隐藏函数。我在代码隐藏函数中设置的断点没有被命中。我已经尝试了几乎所有的解决方案,从堆栈溢出。请查看此代码中是否有错误。已解决
Ajax调用:
$.ajax({
type: "POST",
url: '<%=Page.ResolveUrl("~/WebForm1.aspx/SaveXml")%>',
data: JSON.stringify({ "logic": "logic value" }),
contentType: "application/json; charset=utf-8",
dataType: "json",
//async: true,
//cache: false,
success: function (msg) {
alert("AJAX received : " + msg.d);
},
error: function (msg) {
alert("Failed : " + msg.d);
}
});
Web.config
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
谢谢朋友们
问题解决了。检查浏览器控制台和网络帮助我解决了很多错误
我做了两个改变
1) 在代码隐藏函数中添加了[System.Web.Services.WebMethod]
2) 更改了my=>数据:JSON.stringify(逻辑)。。。。。到..=>数据:“{logic:\''+'\''+'\'}”
参考此链接后,我做了第二个更改:
当只发送一个字符串时,您需要添加转义序列。msg.d将永远不存在于错误响应中。在错误回调中检查调用返回的内容。或者,在浏览器的控制台和网络工具中查看响应状态和内容。这将为您指出正确的方向以找到错误。嗨,我检查了网络中的浏览器“响应体”。它显示错误:ArgumentException:未知web方法SaveXmlThis无法回答问题。一旦你有足够的代表(我想50,不是很多),你可以写评论,直到那时,不要写不是答案的答案:-)我检查了浏览器控制台。(我想这就是你想要检查的)。它正在显示意外的标记@。由于此原因或其他原因导致出现问题。请将url更改为var pageUrl=''url:pageUrl+“/SaveXml”,
数据:'{logic:\''+logic+'\'}'
…yuk。不需要像那样手工构建JSON。更健壮的是data:JSON.stringify({“logic”:logic})代码>
[WebMethod]
public static void SaveXml(string logic) {
}
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>