2012-05-29 68 views
0

我想弄出一個JSON對象,但最終我得到了所有的HTML。使用html的JSON對象

alert("5 " + request.responseText); 
    var JSONObject = eval(+ "(" + request.responseText + ")"); 
    alert("text1: " + JSONObject.name); 

因此,第一行打印出純HTML代碼的警報。它應該這樣做,還是responseText應該只是JSON對象? 第二行不起作用,所以第三行不打印。

我見過的例子,他們只是使用evalresponseText像我一樣,但在我的情況下,它不工作......任何建議?

+4

你的服務器決定你回到什麼樣的「垃圾」。 – Pointy

+0

如果'request.responseText'是HTML,它不能被'eval'ed成一個對象.. – paislee

+1

「Eval」是Evil,Dude:http://squdgy.wordpress.com/2011/10/04/is-javascript -eval-真邪/。使用類似jQuery「getJSON()」的東西你會更好。更好的是,只需在服務器上創建JSON對象。恕我直言... – paulsm4

回答

0

聽起來像服務器端在一個響應中噴射HTML和JSON。我會首先檢查瀏覽器中的調用或像fiddler這樣的代理,以確保它只是返回JSON。

+0

看起來不僅它的JSON回來了。它是否存在一個簡單的方法來將responseText剝離爲僅JSON? – stianlp

+0

如果你在一個HTML元素中有JSON,你可以使用類似JQuery的東西來得到JSON的位,它是在你離開responseXml之後得到的,然後解析那個JSON字符串。 –

+0

我現在這樣做: \t var json = $ .getJSON(URL); \t alert(json); \t alert(json.name); (這是三行代碼,但它看起來像一個) 第一次警告打印:[object Object] 第二次警告打印:undefined 這是什麼意思? – stianlp

1

嘗試方法

jQuery.ParseJSON(request.responceText); 

但首先要確保你的服務器以JSON格式發送數據?