日期:2014-05-17  浏览次数:20464 次

JQUERY json 传值问题

string msg="{ msginfo:["; 

          msg += "{";
          msg += "msgs:'" + "完成"+"',";
          msg += "flag:'" + "true" + "',";
          msg += "thumb:'" + tpath+"',";
          msg += "path:'" + imgpath + "'";
          msg += "}";

以下是JSON组织代码,其中thumb和path的值为 一个图片的绝对路径如:C:\xxx\xxx\xxx\dd.img
下面是我的前端解析代码:

$.ajax({
          type: "POST",
  dateType: "json",
  url: "xxxx.aspx",
  data: "path=" + path,
  success: function (data) {
  var jsonData;
  jsonData = eval(data);
          $.each(jsonData.msginfo, function (idx, item) {
          }
}

在解析时 jsonData = eval(data); 这里报错,报错IE 提示是 “SCRIPT1023: 缺少十六进制数字”
请教各位大侠解答。
------最佳解决方案--------------------
下面的代码是亲自测试过的,IE8、Firefox16 完全可用。

你新建一个页面,名称: Default8.aspx
页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default8.aspx.cs" Inherits="Default8" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
    var path="path"
    $.ajax({
        type: "POST",
        dateType: "json",
        url: "Default8.aspx",
        data: "path=" + path,
        success: function (jsonData) {
            jsonData = $.parseJSON(jsonData);
            $.each(jsonData.msginfo, function (idx, item) {
                alert(this.msgs);
            });
        }
    });
    
    $.getJSON("Default8.aspx","path=" + path,function (jsonData) {
        $.each(jsonData.msginfo, function (idx, item) {
            alert(this.msgs);
        });