检查页面是否是使用 POST 获取的

Chr*_* P. 2 javascript sharepoint

有什么方法可以使用 javascript 检查页面是否是 POST 或 GET 请求的结果?

原因是我有一个 sharepoint 搜索页面,我们在其中插入了自定义 javascript 以自动选择特定值。对于新搜索,这不是问题,但由于下一个/上一个结果页面是使用回发实现的,如果更改了该值,则该值将被重置并且下一个页面将获得不同的结果。

示例:默认值为“选择”(= 无值)。我们的脚本将其设置为“值 1”。新用户转到搜索页面,将其更改为“值 2”并进行搜索。当他返回结果时,我们的脚本将其重新设置为“值 1”,当他单击“下一步”时,他将获得第 2 页的结果,以搜索“值 1”而不是“值 2”。

解决方案是检查页面是否使用 POST 提交,如果不是,则仅重置该值。

Sha*_*ard 5

不,JavaScript 无法检测到这样的事情。

可以做的是从后面的代码中向 JS 注入一些“标志”:

void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "post_back_flag", "var _postBack = true;", true);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在您的 JS 代码中检查该标志。