我正在尝试使用 ajax post 发送 url 字符串,但不知道为什么字符串是自动编码 (%25) 或省略
网址 = http://www.domain.com.br/berco-elegance-wave-verde-ayoba%2521-6343.html
PHP 接收:http://www.domain.com.br/berco-elegance-wave-verde-ayoba%21-6343.html
我用Firebug检查帖子数据,网址字符串已经更改:发布数据网址: http://www.domain.com.br/berco-elegance-wave-verde-ayoba%21-6343.html
我的查询代码:
function save_competitor() {
$.ajax({
type: "post",
url: "<?php echo base_url();?>admin/storeproduct/insert_competitor",
data: "url="+$("#url"),
dataType:"json",
contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success: function (data) {
if(data.success){
alert('ok');
}else{
alert('error');
}
},
error: function (request, status, error) {
if(status=='parsererror')
window.location.href = 'auth/login/';
}
});
}
.HTML:
<input type="text" id="url" name="url" value="http://www.domain.com.br/berco-elegance-wave-verde-ayoba%2521-6343.html"/>
URL Endoding References:
space %20
! %21
" %22
# %23
$ %24
% %25
& %26
' %27
( %28
) %29
* %2A
+ %2B
, %2C
- %2D
. %2E
/ %2F
.....
encodeURIComponent 和 decodeURIComponent 将解决此问题
encodeURIComponent(url);
decodeURIComponent(url)
$("#url") 不是返回元素吗?
$("#url").val()
or
$("#url").attr('href')
您可以从已编码的 html 文本中获取data
。你能告诉我们你的$("#url")html代码的一部分是什么样子的吗?
编辑:
功能:
function urldecode(str) {
return decodeURIComponent((str+'').replace(/+/g, '%20'));
}
用法:
data: "url="+urldecode($("#url").text());