我在用jQuery实现数据提交用的json传输,但是今天有个问题,一直困扰着我
代码是这样的
不管是用1还是2 哪种方法,都无法取得data的值、返回回来的dataResponse是正确的?
请问这是什么原因造成的!
经过高人指点明白了:javascript 直接写ajax请求返回的数据包含 http请求的整个数据
responseText 这个表示取出 text内容
你用jquey 回调函数返回的直接是 responseText
所以刚才第一种方法: var data = eval('(' + dataResponse.responseText + ')');//1
只要写成:var data = eval('(' + dataResponse+ ')');//1就对了!
代码是这样的
function addFlower_Egg(type) {
var id = $("#id").val();
if (type == 1) {// 鲜花
$.ajax({
type : "POST",
url : "/PrisonWeb/module/addFlower.action?type=1",
data : {
id : id
},
async : false,// 是否异步
success : function(dataResponse) {// 返回的值
// 服务器响应完返回后做的事
var data = eval('(' + dataResponse.responseText + ')');//1
var data = dataResponse.responseText.evalJSON();//2
$("#flower").html("<b>(</b><b>" + data + "</b><b>)</b>");
}
})
}
不管是用1还是2 哪种方法,都无法取得data的值、返回回来的dataResponse是正确的?
请问这是什么原因造成的!
经过高人指点明白了:javascript 直接写ajax请求返回的数据包含 http请求的整个数据
responseText 这个表示取出 text内容
你用jquey 回调函数返回的直接是 responseText
所以刚才第一种方法: var data = eval('(' + dataResponse.responseText + ')');//1
只要写成:var data = eval('(' + dataResponse+ ')');//1就对了!