【问题标题】:Use URL segments as jQuery $.post variables使用 URL 段作为 jQuery $.post 变量
【发布时间】:2014-07-26 21:45:53
【问题描述】:

我希望能够将 jQuery $.post 与 url 段一起使用,如下所示:

www.mysite.com/stats/user1

www.mysite.com/stats 是登陆页面,上面有这个代码:

var user = //get user1 from the url;

$.post('stats.php', {username : user}, function(results){...});

用户名应该发布到 PHP 后端,然后进行一些数据库查询。

这可能吗?我也许可以使用 .htaccess 将用户从stats/user1 重定向到stats/,但我在这方面没有太多经验。

非常感谢您的帮助。


编辑

回应 Loopo 的回答:

我可以使用.htaccess 来重写传入的 URL,如下所示:

RewriteRule ^/stats/(.*)$ stats.php?username=$1 [L].

这将允许我输入一个 URL,例如 mysite.com/stats/user123,服务器会将其解释为 mysite.com/stats?username=user123

然后我可以在stats.php 中使用$user = $_GET['username'] 吗?

【问题讨论】:

  • 你在后台用什么??
  • 对不起,使用 PHP。将编辑问题
  • 你使用的是核心php还是php框架??
  • 'url'.split('/').pop() 会给你用户名
  • adeneo - 我仍然可以在mysite.com/stats/ 上这样做吗?还是我需要某种重定向?

标签: php jquery post url-rewriting


【解决方案1】:

您似乎混淆了一些概念。

如果您想将数据传递给网络服务器,您可以通过两种方式进行;发布或获取。 (还有 PUT 和 DELETE,但我们将在这里忽略它。)

如果您使用的是 GET 请求,则数据在 URL 中,通常采用如下格式

mysite.com/mypage.php?param1=value1&param2=value2....

斜线通常充当路径分隔符,告诉网络服务器在哪里寻找响应请求的资源。

mysite.com/myapp/myfolder/resources/logo.png

会告诉服务器在哪里找到然后将文件logo.png发送给客户端。

如果你想在路径中有参数,你也可以使用重定向(.htaccess)来拥有虚拟资源。

就像你的例子一样。

www.mysite.com/stats/user1

没有包含每个用户的脚本的 stats 文件夹。

当有人要求某些类似路径时,您必须告诉您的网络服务器
/stats/<something>
该请求应该由某个脚本(可能是“stats.php”)提供服务,并且传递给脚本的参数将是<something>

在您的 .htaccess 中,这可能如下所示:

 RewriteRule ^/stats/(.*)$ stats.php/$1 [L]

在 POST 请求中,参数在 url 中不可见。

因此,您的 stats.php 必须在 URL 中没有用户名的情况下被调用,而是在 POST 变量中调用,即在您的情况下 POST 到 stats.php/user1 然后在 POST 变量中再次包含用户名是多余的.

因此,您的 stats.php 可以通过读取参数并使用 POST 参数中提供的值创建/更新新用户来处理 POST 请求,同时通过返回用户现在的状态来处理 GET 请求。

我描述的是REST,见also

【讨论】:

  • 感谢您的详细回答 - 我已对我的问题进行了编辑以尝试澄清
  • 看起来你在正确的轨道上......你也可以使用 $_SERVER (php.net/manual/en/reserved.variables.server.php) 数组来获取用户,特别是 $_SERVER['REQUEST_URI']
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 2013-10-12
相关资源
最近更新 更多