2012-03-27 12 views
0

我已閱讀,閱讀和閱讀..我試圖拉一個飼料我跟着上次回答我可以谷歌。我沒有得到這裏的問題,因爲找到並解析darn json會導致firebug無法正常工作。jsonp,只是沒有工作..總是錯誤

所以儘量一個

var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.getJSON(url+'?callback=?', function(data){ 
    alert('true'); 
    $.jtrack({ 
     load_analytics:{account:GAcode}, 
     trackevents:data // this can be hard codded here or set do be feed in like so 
     }); 
}); 

失敗但我看到它在WTF?

所以

var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.ajax({ 
    url: url, 
    cache: false, 
    dataType: 'jsonp', 
    jsonp : "callback", 
    success: function(data){ 
    alert('data'); 
    //data=jQuery.parseJSON(data); 
    $.jtrack({ 
     load_analytics:{account:GAcode}, 
     trackevents:data // this can be hard codded here or set do be feed in like so 
    }); 
    }, 
    error: function(e, xhr){ 
    alert('error'); 
    alert(e); 
    } 
}); 

次的失敗..所以..嗯認爲錯誤會告訴我呢..什麼都沒有..所以..讓我們真實並測試輸出它是自我的原因確定地獄,它找到了網址,我正在調用jsop和和.. ..以及讓我們驗證輸出的原因肯定是這個問題。

enter image description here

所以..好,我不知道。我在這裏從曼谷打每一次縫補線程。一個人知道交易是什麼?

+5

那麼你對待它是JSONP ,但截圖和網址顯示爲JSON,沒有設置回調。 – epascarello 2012-03-27 19:55:46

+0

你的鏈接只是json,你有API文檔嗎?你將不得不設置一個回調,即:http://web.onassar.com/blog/2009/07/25/jsonp-vs-json-amazing-for-apis/ – JKirchartz 2012-03-27 20:00:01

+0

,所以我包裹了網址的輸出在回調函數()中,沒有改變$ .getJSON(url +'?callback =?',function(data){}); – 2012-03-27 20:06:56

回答

1

結帳此鏈接: JSON Example using Callback

我認爲JSON返回需要把回調返回的JSON。在上面的例子中,它被放置在像前:

CALLBACKVALUE([{"id":"4","name":"FICTION","parentid":"3","getfullname":"BOOKS > FICTION"},{"id":"5","name":"NON-FICTION","parentid":"3","getfullname":"BOOKS > NON-FICTION"}) 
+0

好吧..做到了這一點,似乎把它拉回來,但$ .getJSON(url +'?callback =?',function(data){alert('true');});仍然不警覺? – 2012-03-27 20:14:58

+0

好吧..這是正確的..在測試錯字..謝謝.. -J – 2012-03-27 20:18:29

0

我認爲問題是,你沒有返回JSONP內容 - 只是JSON。您需要預先將callback參數添加到您當前正在服務的JSON的開頭,並將其包含在括號中。例如您正在返回:

[{ 
    "element":"#null", 
    "options":{} 
}, 
    ... 
] 

,你需要將返回:

value_of_callback_param([{ 
    "element":"#null", 
    "options":{} 
    }, 
    ... 
]); 

尾隨;是可選的。請參閱this link,其中描述了應該如何工作。

另外,我認爲application/javascript應該用於內容類型而不是application/json,因爲您將返回有效的JavaScript而不僅僅是一個JSON對象/數組。此外,jQuery docs for the $.ajax function指出error回調不應針對JSONP請求調用。

+0

是danfolkes指出我錯過了作爲包裝的回調價值..謝謝你回來..乾杯 - – 2012-03-27 20:42:40

0

只是要pick.asp得到callback URL參數(從現在起稱爲<some string>),它獲取的jQuery生成,這樣pick.asp?callback=<some string>向服務器發送的值。然後使用該值來構建你這樣的迴應:

<some string>(<your json>); 
0

此提醒「#NULL」

var url = 'http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.getJSON(url + '?callback=?', function(data) { 
    alert(data[0].element); 
}); 

這裏就是回來:

callback([ 
    { 
     "element":"#null", 
     "options":{} 
    },{ 
     "element":"a#hover", 
     "options":{ 
      "category":"hover", 
      "label":"function(ele){ return (($(ele).attr('title')!='' && typeof($(ele).attr('title')) !=='undefined') ? $(ele).attr('title') : $(ele).attr('href')) }" 
     } 
    },{ 
     "element":"a[href$='.jpg'],a[href$='.gif'],a[href$='.png'],a[href$='.ppt'],a[href$='.pdf'],a[href$='.doc'],a[href$='.docx']", 
     "options":{ 
      "category":"download", 
      "label":"function(ele){ return (($(ele).attr('title')!='' && typeof($(ele).attr('title')) !=='undefined') ? $(ele).attr('title') : $(ele).attr('href')) }" 
      } 
    },{ 
     "element":"a:not([href*='mailto('])", 
     "options":{ 
      "category":"email" 
      } 
    },{ 
     "element":"a:not([href*='wsu.edu'])", 
     "options":{ 
      "category":"outbound" 
      } 
    },{ 
     "element":"a[href*='wsu.edu']", 
     "options":{ 
       "category":"internal", 
       "noninteraction":"true" 
      } 
    } 
]) 
+0

是danfolkes指出我錯過了作爲包裝的回調價值..你剛剛錯過了..謝謝你回來..乾杯 - – 2012-03-27 20:43:12

相關問題