【www.bbyears.com--jquery】
当你用ajax传递值到服务器端,如果值中包含特殊字符串如+,&等,在服务器端获取的结果可能就会出现差异,因为这些字符有其它用途,如“+”表示连接符,在转义后你获取到的就是空格。
可以看看这些特殊字符与十六进制的关系:
+ 空格 / ? % & = # %2B %20 %2F %3F %25 %26 &3D %23
如果变量中确实需要包含这些特殊字符,请用encodeURIComponent()函数过滤,它会对这些字符编码,服务器端是会被自动解码的,不需要处理。
另外,尽量提交json格式数据 如 {a:"aaa", b:"bbb"} 而非 "a=aaa&b=bbb"
例子
代码如下<script type="text/javascript">
//alert("你好");
function good(){
//alert("您好 Ajax");
var myurl = document.getElementById("txtUrl").value;
var mydata = {"URL" : myurl};
alert(myurl);
var jsonData = {"ClientName":"爱&国","URL":"http://192.168.1.8:9080/GeoSearch?Request=geo&level=geometry&ClientName=美国"};
$.ajax({
type: "POST",
//ContentType: "text/xml;utf-8",//这里需要加个utf-8
//dataType:"xml",
url: "Tserver",
//dataType:"xml",
data:mydata,
//data:jsonData,
//data:{"ClientName":"爱&国","URL":"http://192.168.1.8:9080/GeoSearch?Request=geo&level=geometry&ClientName=美国"},
//data: "ClientName=J/&o#爱国美丽#hn@@@@人&location=Boston",
success: function(data, textStatus){
document.getElementById("g").value=data;
//alert(data);
alert(jsonData);
},
error:function (XMLHttpRequest, textStatus, errorThrown) {
// 通常 textStatus 和 errorThrown 之中
// 只有一个会包含信息
//this; // 调用本次AJAX请求时传递的options参数
// alert("bad");
alert(textStatus);
//alert(errorThrown);
}
});
}
</script>
资源地址 :
资源名字 :