Heim >Backend-Entwicklung >PHP-Tutorial >javascript - 如何用ajax post一个url到php服务器?

javascript - 如何用ajax post一个url到php服务器?

WBOY
WBOYOriginal
2016-06-06 20:38:39853Durchsuche

此url是有有&符号的,用常规ajax post方式传到php后会把&符号前后分成一个个单独的参数...

<code>//如:
url=http://localhost/app/index.php?c=show&a=index&from=weixin
</code>

这个是一个参数,key是url,其它都是value(不是3个参数),请问如何才能将这个url完整地传到php呢?听说可以在js加密这个url,然后在php解密,但是我找了一下,js加密都要引用不少东西,请问有没有个简单的做法呢?

我试了使用转义符,上面的改成

<code>url=http://localhost/app/index.php?c=show\\&a=index\\&from=weixin
</code>

php则会报错说找不到这个控制器...

回复内容:

此url是有有&符号的,用常规ajax post方式传到php后会把&符号前后分成一个个单独的参数...

<code>//如:
url=http://localhost/app/index.php?c=show&a=index&from=weixin
</code>

这个是一个参数,key是url,其它都是value(不是3个参数),请问如何才能将这个url完整地传到php呢?听说可以在js加密这个url,然后在php解密,但是我找了一下,js加密都要引用不少东西,请问有没有个简单的做法呢?

我试了使用转义符,上面的改成

<code>url=http://localhost/app/index.php?c=show\\&a=index\\&from=weixin
</code>

php则会报错说找不到这个控制器...

...少年,老师没教过你 querystring 的参数一定要做 urlencode 的么=。=

<code>"url="+ encodeURIComponent("http://localhost/app/index.php?c=show&a=index&from=weixin");
</code>

PHP 后端按道理应该 $_GET['url'] 是可以直接拿到正常的字符串的,如果没有的话请自行 urldecode 一次。

URL Encode一下参数再传就可以了

<code>url=encodeURIComponent("http://localhost/app/index.php?c=show&a=index&from=weixin")
</code>

参考:http://stackoverflow.com/questions/332872/encode-url-in-javascript

额,刚刚看了一下url编码,使用这样的就可以解决问题了

<code>str.replace(/(&+)/g,'%26')
</code>

就行了

然后顺便看到js有把字符串转换为url编码的方法encodeURIComponent(),用这个也应该可以的

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn