[英]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.