如要是利用ajax请求一个页面,将json字符串 进行编码,通过escape方法,这是我写的代码,但是一直不成功,感觉这样写是不对的,但是不知道怎么写
$.ajax({
type: "Post",
url: "http://210.51.213.115/PanPass_ZxApi/api/Prize/GetPrizeList",
//方法传参的写法一定要对,name为形参的名字,age为第二个形参的名字
data: JSON.stringify(d),
contentType: "application/json; charset=utf-8",
dataType: "json",
data: escape(data),
success: function (data) {
//返回的数据用data.d获取内容
window.location.href = "duihuan.html?toal=data.integraltotal&use=data.integraltotal&rema=data.remainintegral";
},
error: function (err) {
$("#lblMsg").html("服务忙!请稍后再试!");
}
});
});
ajax参数中有两个data属性,你先删掉第二个,如果还不行的话,那么删掉第二个+修改第一个为: data: escape(JSON.stringify(d))
但是我们经理说 如果对json进行加密 ,一般都是用get方式进行提交,你看一下 ,我这段代码 需要怎么改一下
$.ajax({
type: "Post",
url: "http://210.51.213.115/PanPass_ZxApi/api/Prize/GetPrizeList",
//方法传参的写法一定要对,name为形参的名字,age为第二个形参的名字
data: escape(JSON.stringify(d))
contentType: "application/json; charset=utf-8",
dataType: "json",
data: escape(data),
success: function (data) {
//返回的数据用data.d获取内容
window.location.href = "duihuan.html?toal=" + data.integraltotal + "&use=" + data.integraltotal + "&rema=" + data.remainintegral;
},
error: function (err) {
$("#lblMsg").html("服务忙!请稍后再试!");
}
});
@郭晓丹: 把第二个data干掉就行了。第二个data是多余的~
@幻天芒: 恩恩,我看到了,但是我的提交方式 用不用改为get方式?
@郭晓丹: 这个要看你的后台处理程序,是接收get还是post请求,我测试了一下那个api,发现get,post都是可以的。你可以暂时不用修改试试~
@幻天芒: 我请求的是我们服务器上的一个地址
@郭晓丹: 我明白,还有这样的ajax请求写法也是快过时的写法。请参考:
$.ajax({ type: 'post', url: 'http://xxx', contentType: 'application/json', data: 'test', dataType: 'json', cache: true, async: true }).done(function(data){ //请求成功时执行,data是请求结果 }).fail(function(errObj){ //请求错误时,执行这块 }).complete(function(resObj){ //不管请求失败还是成功,都会执行。 });
使用escapeURIComponent(data)
或者使用escape(escape(data))
你能不能在我代码的基础上改一下呀,如果要进行编码,是不是只能用get进行提交
@郭晓丹:
方式1(POST、GET):
先将d中的带有汉字的数据使用escapeURIComponent()转换,
然后将d转为JSON数据。
var d={name1:value1, name2:value2}
// 数据编码escapeURIComponent(value1)
// d=JSON.stringify(d);
$.ajax{
type:"post",
url:'......./GetPrizeList',
data:d
dataType:'json'
}
=======================================
方式2(GET):
将数据d转为 name=value&name=value这样的拼接的字符串后,在前面加上url。
然后使用两次escape
$.ajax{
type:"get",
url:escape(escape('......./GetPrizeList'+'?'+JSON.stringify(d))),
dataType:'json'
}
data属性有2个,
麻烦说详细一点,我刚接触