0
我有一個簡單的JQuery Stockwatcher應用程序,它使JSONP請求,但回調函數沒有被調用。我有這個應用程序的JSON調用工作,但在某個點它將是跨域,因此我必須是JSONP。JQuery JSONP回調錯誤
我在做什麼錯?當我運行這個代碼時,Error函數被調用。
function loadData(data) {
alert("Load Data");
$.each(data.stocks,function(i,item){
$("#results").append('Title:'+item.symbol+' == Price:'+item.price+'</p>');
});
}
$(document).ready(function(){
var url='http://localhost:8080/StockWatcherServer/stockwatcher/stockPrices?q=';
var query;
$('button').click(function(){
query=$("#query").val();
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
//$.ajaxSetup({ crossDomain: true, scriptCharset: "utf-8" , contentType: "jsonp; charset=utf-8"});
$.ajax({
url : url+query,
type: "GET",
dataType: "jsonp",
jsonp : "callback",
jsonpCallback: "loadData",
success: function(data) {alert("Success");},
error: function(data) { alert("Error"); },
});
});
});
這裏是我的JSON輸出,這點我可以在Firebug
{"stocks": [
{
"symbol": "IPOD",
"price": 20.2182603350167,
"change": 0.3128265006354697
}
]}
由於看到 拉傑什
是您準備好處理jsonp的服務器方法嗎? –
json和jsonp之間的區別是由服務器完成的:它是通過回答'thecallback(thejson)'而不是'thejson'指示回調的服務器。也許看看這個JSONP服務器的答案會更清楚:http://canop.org:8001/ –