如何在jquery php中以更干净的方式发送url?

如何在jquery php中以更干净的方式发送url?,php,jquery,Php,Jquery,好的,我想向一个php文件发送一个完整的url,该文件也包含参数,假设url类似于folder/test.php?parm1=19&parm2=119¶m3=345。 我所做的是这样说,下面是伪代码 var urlParameter="urlparameter="+(above url) $.ajax({ type: "POST", url: "some.php", data:urlParameter , }).done(function( msg ) { alert( "Data Sa

好的,我想向一个php文件发送一个完整的url,该文件也包含参数,假设url类似于folder/test.php?parm1=19&parm2=119¶m3=345。
我所做的是这样说,下面是伪代码

var urlParameter="urlparameter="+(above url)
$.ajax({
type: "POST",
url: "some.php",
data:urlParameter ,
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
现在在some.php中,当我访问urlParameter时,我不会得到我的完整url,我只会得到它

folder/test.php?parm1=19
为了创建完整的url,我必须获取param2值和param3,然后再次形成url。这很好,但是有没有更好的方法在jquery中发送带有参数的完整url?

当然,您可以这样做:

data = {
    'param1' : 19,
    'param2' : 119,
    'param3' : 345
}

$.post('/some.php', data, function(msg) {
    alert( "Data Saved: " + msg );
})

使用对象表示法发送请求参数,例如

$.post("some.php", {
    urlParameter: "folder/test.php?parm1=19&parm2=119&param3=345"
}, function(data) {
    // etc
});

你应该考虑将逃生方法应用到你的字符串中,然后在你的PHP代码中发送它,然后再脱逃它。


没有我的url是这样构建的文件夹/test.php?parm1=19&parm2=119¶m3=345。我想将它作为stringTry发送:“data:{'data':urlparmeter}”而不是“data:urlparmeter”。我认为Muu正确地回答了您的问题,但您描述的是GET,而不是POST。对于POST,您的请求URL是some.php,但是对于GET请求,您的URL将是some.php?param1=a¶m2=B。您可以使用php中的$\u GET或$\u POST访问这些URL,或者$\如果你不担心你的请求是怎么来的。哦,对不起,是的,你是对的,我只是把code@MickSear在我看来,OP希望发出一个POST请求,并将URI作为参数之一。这样做没有错this@Phil是的,这就是我问这个问题的原因。我同意你可以同时做这两件事——这是完全正确的,但问题不是很清楚——你应该阅读你链接到的页面;escape()函数不应用于对URI进行编码。改为使用encodeURI()函数。我不同意你的看法,在他的例子中,“?”或“&”或“=”似乎是获取他想要的数据的问题。encodeURI()指定此函数对特殊字符进行编码,除了:,/?:@&=+$#(使用encodeURIComponent()对这些字符进行编码)。所以真正要使用的方法是encodeURIComponent(),在他的例子中,escape应该可以工作。