2012-08-04 68 views
1

有谁知道我该如何使用.jsonp jquery从URL中检索数据?我写了下面的代码,但它似乎并没有为我工作:如何使用.jsonp jquery从url中检索数据?

$.JSONP({ 
    url: 'http://test.com', 
    callbackKey: 'jsoncallback', 
    onComplete: function (data) { 
     alert(data) 
     // the request was completed. 
    } 
}); 

注:URL做工精细

+6

'$ .JSONP'?你是否发明过那个效用函数? – undefined 2012-08-04 03:06:08

+0

@Raminson https://github.com/jaubourg/jquery-jsonp/blob/master/README.md – 2012-08-04 04:19:33

回答

1

什么是$.JSONP?最简单的方法如下:

var url="http://scoreboardwcf.sportal.com.au/scoreboard.svc/GetCalendarData?BaseURL=http://www.sportal.com.au/&Sport=All&CompetitionID=0&callback=?"; 
$.getJSON(url, function(data) { 
    alert(data); 
}); 

Here is an example

更新:由于您在评论中提问 - 我怎样才能将它应用于循环?

var url="http://scoreboardwcf.sportal.com.au/scoreboard.svc/GetCalendarData?BaseURL=http://www.sportal.com.au/&Sport=All&CompetitionID=0&callback=?"; 

$.getJSON(url, function(data) { 
    document.write('DefaultFixtureNo : '+data.Calendar.DefaultFixtureNo+'<br /><br />'); 
    var items=data.Calendar.FixtureData; 
    for(i=0;i<items.length;i++){ 
     var item=items[i]; 
     for(x in item) document.write(x+' : '+item[x]+'<br />'); 
     document.write('<br /><br />'); 
    } 
}); 

Example Here using for loop

+0

我无法读取返回数据里面的记录:( – 2012-08-04 03:45:19

+0

[试试这个](http://jsfiddle.net/) heera/fk8jD/3 /) – 2012-08-04 03:46:03

+0

如何将它应用于循环而不是? – 2012-08-04 04:04:45

0

这将帮助你,

 $.ajax({ 
      dataType: 'jsonp', 
      url: "http://scoreboardwcf.sportal.com.au/scoreboard.svc/GetCalendarData?BaseURL=http://www.sportal.com.au/&Sport=All&CompetitionID=0&callback=?";, 
      success: function() {alert('Success');}, 
      error: function (jqXHR, textStatus, errorThrown) { 
       alert(textStatus); 
       alert(errorThrown); 
      }, 
     }); 
0

如何执行使用$ .jsonp

例HTTP GET请求来自计算器问题上执行HTTP方法除了GET

"jquery.jsonp.js" GET works. What about POST PUT DELETE OPTIONS?

$.jsonp({ 
    cache: false, 
    url: 'http://www.mydomain.com/logicalurl/2/', 
    callbackParameter: 'callback', 
    timeout: 10000, 
    success: function(json, textStatus, xOptions) { 
     myglob = json; 
     MyModulePatternObject.initNew(json); 
    }, 
    error: function (xOptions, textStatus) { 
     console.log("fail"); 
    } 
}); 

myglob用于在Tools-> Web Developer-> Web Console中调试时查看和操作json响应。也使用Firebug

MyModulePatternObject.initNew(json)只是在成功的jsonp请求后调用的重命名方法。

cache: false,推荐使用PageCache: true,生产代码。开发应用程序时关闭缓存。