[英]Ajax POST request not being processed
我正在使用ajax将发帖请求发送到网页后面代码中的c#代码,以便将tinyMCE编辑器中的内容保存到文件中。 只要在编辑器中按下保存按钮,就会调用ajax函数。 我使用了非常相似的方法来处理另一个网页中的发布请求,但由于某种原因,该请求不适用于该网页。 Ajax代码是:
$.ajax({
url: "Editor.aspx",
data: { "contentCheckCode": tinyMCE.activeEditor.getContent() },
type: "POST",
success: function (response) {
alert("Contents saved...");
},
error: function (xhr, status, errorThrown) {
alert("Error: " + errorThrown);
}
});
处理请求的C#代码为:
protected void Page_Load(object sender, EventArgs e)
{
//listens for POST request
if (Request.HttpMethod == "POST")
{
BasePage sourcepage = (BasePage)Context.Handler;
bool success;
String requestContents;
String path = Server.MapPath(sourcepage.Src);
using (Stream inputStream = Request.InputStream)
{
using (StreamReader readStream = new StreamReader(inputStream))
{
requestContents = readStream.ReadToEnd();
}
}
if (requestContents.Contains("contentCheckCode"))
{
requestContents = editText(requestContents);
success = saveToFile(requestContents, path);
if (success)
{
Response.Output.WriteLine("Contents saved");
}
else
{
Response.Output.WriteLine("Error encountered");
}
}
}
}
当我进行调试时,似乎代码甚至从未收到请求,即使ajax方法每次都调用成功函数,也可能有什么建议吗? 再次,我以完全相同的方式在另一个网页上完成了此操作,没有问题
编辑:我将以下方法添加到后面的C#代码中:
[System.Web.Services.WebMethod]
public static void handlePOSTrequest(HttpContext request) {
if (HttpContext.Current.Request.HttpMethod == "POST") {
bool success;
String requestContents;
using (Stream inputStream = (HttpContext.Current.Request.InputStream))
{
using (StreamReader readStream = new StreamReader(inputStream))
{
requestContents = readStream.ReadToEnd();
}
}
if (requestContents.Contains("contentCheckCode"))
{
requestContents = editText(requestContents);
success = saveToFile(requestContents, filePath);
}
}
}
并在其旁边放置一个断点,但是代码永远不会在那一点上停止,这表明它没有捕获请求,我在这里错过了什么/做错了什么吗? 同样,为了进行检查,为了直接从ajax调用中调用page方法,只需将URL更改为“ Editor.aspx / handlePOSTrequest”,对吗? 另外,请求肯定正在启动
$.ajax({
url: "Editor.aspx/handlePOSTrequest",
data: { "contentCheckCode": tinyMCE.activeEditor.getContent() },
type: "POST",
success: function (response) {
alert("Contents saved...");
},
error: function (xhr, status, errorThrown) {
alert("Error: " + errorThrown);
}
});
当您传递“ contentCheckCode”时,您的静态方法是否接受HttpContext对象? 我不认为HttpContext类是可序列化的。 做什么:
tinyMCE.activeEditor.getContent()代表什么? 弦吗?
如果是这样,那么您的静态函数原型应如下所示:
public static void handlePOSTrequest(string contentCheckCode) {
试试这个,让我知道如何进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.