【问题标题】:Open new webpage using js使用js打开新网页
【发布时间】:2013-04-19 10:03:24
【问题描述】:

我有一个网站,有一个登录表单,我希望它使用 AJAX 和 PHP,AJAX 和 php 脚本工作文件,其中大部分,但是当我尝试重定向到一个新页面时,我遇到了问题。

问题是我正在使用

document.getElementById("signup_form").innerHTML = xhr.responseText;

更新 signup_form div,所以如果出现问题,我可以将其写入网页的一部分。但是,当登录详细信息正确时,它会在我网站右上角的这个小 div 中加载新页面.....

在我的 PHP 脚本中,如果登录详细信息正确,我会使用位置重定向,我也尝试过使用 cURL,但坦率地说,我不知道该怎么做。

我希望整个页面从 www.something.com 更改为 www.something.com/members,而不是将其加载到 www.something.com 页面上的给定中。另外我正在存储会话数据,所以我不想在进入新页面时丢失它。

欢迎任何帮助和教程,我正在学习 js 和 AJAX。

感谢您的帮助。

【问题讨论】:

标签: php javascript ajax curl


【解决方案1】:

如果您使用的是 AJAX,则不能,也不应使用标头位置从服务器端/php 端重定向。而是使用

window.location

在您收到成功响应后的 javascript 属性。像这样的

window.location = "www.something.com/members";

【讨论】:

  • 为什么我不应该从服务器端重定向?
  • 因为您正在进行 ajax 调用,而您的 ajax 调用正在等待响应。如果您不返回响应,它将永远不会完成过程。
  • 我已经完成了大部分工作,但我使用 PHP 设置了会话变量,它似乎摆脱了它们,所以我的会员页面将检查会话以查看用户是否处于活动状态,如果不是注销...它全部设置为活动但当它转发到新页面时,会话检查脚本将我发送回登录页面。当我被重定向时,js 会破坏会话还是创建新会话?
  • 我不这么认为,如果会话在那里它不应该重定向你,可能你需要把 session_start 放在页面的开头。只需检查会话是否设置。如果您未登录,您可以转到成员页面并回显您的会话并在代码重定向回登录页面之前退出。
  • 你是对的,我在最初调用登录脚本(旧方式)的 php 文件中启动了会话,但需要在登录方法中添加会话数据之前添加 session_start。那是你的一大堆帮助,现在一切正常(但有点乱,认为它很快就会重写登录系统)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
相关资源
最近更新 更多