我有一个web应用程序,前端是HTML & JavaScript/jQuery,后端是PHP。
它使用的URL很难看,比如host/app/page.php?userid=1……丑陋!因此,使用一个小页面,它现在将提供url为url/ MOD_REWRITE /1/
RewriteRule ^page/([0-9]+)/?$ host/app/page.php?userid=$1 [NC,L] 接下来,它最初对jQuery文件执行简单的PHP请求以获取动态数据。
var params = A JS function to get all paramters after the ? in URL
var userid = params.id;
$.getJSON('host/app/page_code.php',{'userid':userid}, function(data) {
var blah = data.blah;
});现在,在使用MOD_REWRITE之后,我现在没有很好的方法来获取参数的前端,只能以page/1格式。然而,循环并将每个参数放在斜杠之间并不像是正确的做法。
所以我点击了谷歌,似乎从MOD_REWRITE发送参数似乎是一种方法。所以我的问题是,这是怎么可能的,它是如何做到的?
如何使用MOD_REWRITE从URL中获取参数,将这些参数发送到PHP后端,然后使用JSON向前端返回响应?
编辑:我遇到的问题是,我需要将参数从JS传递到PHP后端,然后获得响应。我最初使用JS从URL获取这些参数,然后将它们传递到GET请求中,然后根据发送的参数从PHP获得响应。但是,现在我已经在URL上使用了mod_rewrite,我看不到前端的参数,无法用传统的?a=b&c=d格式捕获。现在看起来像/b/d,要在JS中获取这些参数,我只能通过循环遍历和获取斜杠之间的每个参数来实现。这样做似乎不太对。我需要实际的一些如何获得参数的PHP代码在一个单独的页面从前端。然后将其与PHP代码的响应一起传递回前端,因此我假设用户id。我不希望在前端文件中有任何php,因为这会让它完全分离。必须有一种方法来获得参数从url到PHP代码在一个不同的文件,然后发送一个响应到前端HTML&JS与usersid。我是第一次接触干净的urls的整个MOD_REWRITE,这让我很困惑!
发布于 2013-05-17 01:24:19
您可以使用javascript编写一个反向路由器,在该脚本中,给定一个URL,它将返回参数。
示例(非常糟糕的一个,只是为了给您一个概念) on jsfiddle
缺点:您必须将路由从.htacces文件复制到Javascript。每当该文件中的某些内容发生更改时,您也必须在Javascript中进行更改。
编辑:
另一种方法
PHP
.htaccess,然后以格式检索路由数据。您可以从Ajax请求访问它示例:
jQuery.ajax({
url: 'reverse_routing.php',
type: 'json',
data: {
url: window.location.pathname
},
function(params) {
// Do your stuff here...
}
});发布于 2013-05-17 00:41:48
对http://api.jquery.com/serialize/使用post方法
jquery中的示例。
$( "form" ).on( "submit", function( event ) {
event.preventDefault();
console.log( $(this).serialize() );
});一个在PHP意义上传递数据的想法。
data = $( "form" ).serialize();
$.post("serverside.php", data, function(returnData)
{
$("divid").html(returndata)
}https://stackoverflow.com/questions/16592947
复制相似问题