我正在使用以下ajax代码:
$.ajax({
url: "Editor.aspx/Page_LoadComplete",
data: { "contentCheckCode": contents },
type: "POST",
success: function (response) {
alert("Contents saved...");
},
error: function (xhr, status, errorThrown) {
alert("Error: " + errorThrown);
}
});
将post请求发送到我的网页后面的代码,以便将tinyMCE编辑器的内容保存到文件中。我的问题是后面的代码没有收到POST请求而是收到GET请求,以下C#代码突出显示了这个问题,而且请求没有内容:
protected void Page_LoadComplete(object sender, EventArgs e) {
string test =Request.HttpMethod;
//listens for POST request
if (Request.HttpMethod == "POST"||Request.HttpMethod=="GET")
{
String requestContents;
using (Stream inputStream = Request.InputStream)
{
using (StreamReader readStream = new StreamReader(inputStream))
{
requestContents = readStream.ReadToEnd();
}
}
}
有关如何解决此问题的任何建议?我一直在搜索答案,但似乎找不到有类似问题的人。我确信我做错了或错过了,因为我是jQuery和C#的新手
另外作为Stack Exchange上的新用户,我还不能在我的帖子中包含图片,但我尝试使用Chrome开发者工具的“网络”标签来了解正在发生的事情,其输出可以是在这里找到:http://imgur.com/2LHuch8
编辑:将我的ajax代码更改为以下内容:
$.ajax({
url: "Editor.aspx/PostHandle",
data: { "content": contents },
dataType: "text",
type: "POST",
success: function (response) {
alert("Contents saved...");
},
error: function (xhr, status, errorThrown) {
alert("Error: " + errorThrown);
}
});
并将以下方法添加到我的代码后面:
[WebMethod]
public static String PostHandle(String content) {
String test = content;
return "Hello world";
}
我在上面的方法中设置了一个断点,但它仍然没有捕获请求,是否有我遗漏的东西?
答案 0 :(得分:2)
您的网络方法应该具有以下语法:
[WebMethod]
public static string Page_LoadComplete(int id)
{
....
return "hello";
}
和你的ajax调用类似:
$.ajax({
type: "POST",
url: "YourPage.aspx/Page_LoadComplete",
data: "{'id':'1'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
//do something with data
}
});