>백엔드 개발 >PHP 튜토리얼 >javascript - 如何用ajax post一个url到php服务器?

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

WBOY
WBOY원래의
2016-06-06 20:38:39852검색

此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(),用这个也应该可以的

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.