0

我有这个 ajax 帖子:

$.ajax({
  url: Config.Proxy + "ContentPages.aspx?t=save",
  type: "POST",
  contentType: "application/x-www-form-urlencoded",
  data: {
    content: content,
    id: currentPageId,
    active: "true",
    subject: $('#txtSubject').val(),
    webid: webid
  },
  success: function (data, status) {
    // do something
  },
  error: function (xhr, desc, err) {
    // Do something
  }
});

我在 .NET 页面上发帖,因此我可以使用调试模式检查数据是否正确发送。我对不同的页面(其他 url,其他数据)使用与上面相同的代码。

当我运行应用程序并保存数据时,我没有进入调试模式。当我对其他页面使用相同的代码时,它工作正常。

我试图比较两个代码,但它们是相同的。我已经删除了一些数据项,但它仍然不起作用。

为什么?谁能给我一个提示?

谢谢

  • 编辑 * 我知道为什么会这样:CKEditor。一旦我将变量“content”设置为 CKEditor 的内容并使用 post-call,调试模式就不再被调用。代码隐藏中的表单键也是 0。现在的问题是如何解决这个问题?
4

1 回答 1

0

就像我在原始帖子的编辑中所说:问题是由 CKEditor 的内容引起的。我认为 HTML 不是 AJAX 帖子中的解析器/加载/调用它的内容。所以,在一点帮助下(并且没有发布代码隐藏,这与问题无关)我想通了:

var content = escape(CKEDITOR.instances.editor1.getData());

将变量“内容”放在帖子的数据部分中,瞧!它就像一个魅力。

在后面代码中的接收 .NET 页面上,解码值:

(HttpUtility.UrlDecode(Request.Form.Get("content").NullSafeString())

不管怎么说,还是要谢谢你

于 2012-07-07T10:55:32.440 回答