首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

AJAX结合JSON在火狐上可以,但是IE上不行

2012-10-16 
AJAX结合JSON在火狐下可以,但是IE下不行HTML code!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transiti

AJAX结合JSON在火狐下可以,但是IE下不行

HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>MyHtml.html</title>        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="this is my page">    <meta http-equiv="content-type" content="text/html; charset=UTF-8">    <script type="text/javascript" src="json2.js"></script>    <script type="text/javascript">        var xmlHttp;        function doJson()        {            var cars = new car("奔驰","SLCAR00004500",50000);            var carAsJson=JSON.stringify(cars);            alert("Car object as json:\n"+carAsJson);                        var url ="JSONExample?timeStamp="+new Date().getTime();            createXMLHttpRequest();            xmlHttp.open("POST",url,true);            xmlHttp.onreadystatechange=handleStateChange;            xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");            xmlHttp.send(carAsJson);        }                function car(carname,carno,carprice)        {            this.carName=carname;            this.carNo=carno;            this.carPrice=carprice;        }                function createXMLHttpRequest()        {            if(window.XMLHttpRequest)            {                xmlHttp=new XMLHttpRequest();            }            if(window.ActiveXObject)            {                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");            }        }                function handleStateChange()        {            if(xmlHttp.readyState ==4 && xmlHttp.status==200)            {                parseResult();            }        }                function parseResult()        {            var responseDiv = document.getElementById("serverResponse");            if(responseDiv.hasChildNodes())            {                responseDiv.removeChild(responseDiv.childNodes[0]);            }            var responseText = document.createTextNode(xmlHttp.responseText);            responseDiv.appendChild(responseText);        }    </script>  </head>    <body>    <form action="#">        <input type="button" name="button" value="show Json" onclick="doJson()" />    </form>     <h2>Server response:</h2>    <div id="serverResponse"></div>  </body></html>

Java code
package com.suning.study.ajax.servlet;import java.io.BufferedReader;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.json.JSONException;import org.json.JSONObject;@SuppressWarnings("serial")public class AjaXDemo extends HttpServlet {        public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        String json = readJsonStringFromRequest(request);        JSONObject obj=null;        String responseText ="";        try {            obj=new JSONObject(json);            responseText="The car is a car[carName:"+obj.getString("carName")+",carNo:"+obj.getString("carNo")            +",carPrice:"+obj.getDouble("carPrice")+"]";        } catch (JSONException e) {            e.printStackTrace();        }        response.setContentType("text/html;charset=UTF-8");        PrintWriter out = response.getWriter();        out.print(responseText);    }    private String readJsonStringFromRequest(HttpServletRequest request) {        StringBuffer buffer = new StringBuffer();        String line = "";        try {            BufferedReader reader = request.getReader();            while ((line=reader.readLine())!=null) {                buffer.append(line);            }        } catch (IOException e) {            e.printStackTrace();        }        return buffer.toString();    }} 


望大侠们帮小弟看看

[解决办法]
var carAsJson=JSON.stringify(cars);

IE浏览器没有JSON对象,需要自己编写函数序列化JSON对象。

参考这个:在ie下将json对象转化成json字符串的问题

json.js下载,已经修正和jq的冲突

热点排行