2016-07-28 190 views
0

我想作一个简单的请求,维基百科的API:Ajax请求维基百科API问题

$.ajax({ 
    url: 'http://en.wikipedia.org/w/api.php', 
    data: { 
     action: "query", 
     generator: "search", 
     gsrnamespace: 0, 
     gsrsearch: "te", 
     gsrlimit: 30, 
     prop: "info|extracts", 
     inprop: "url", 
     format: "json" 
    }, 
    dataType: 'jsonp', 
    success: processResult 
}); 

的结果应该是这样的 - >https://en.wikipedia.org/w/api.php?action=query&generator=search&gsrnamespace=0&gsrsearch=te&gsrlimit=10&prop=info|extracts&inprop=url

但是,这并不正确地从我的工作ajax代码(必须有“提取”键)。

我认为问题出在simbol“|” (看看阿贾克斯):

 prop:"info|extracts", 

如何解决?

+0

尼:它是“维基百科”而不是“维基”。 – gcampbell

+0

谢谢。我刚做了一个编辑 – kurumkan

+0

摘录并不总是可用的! –

回答

1
$.ajax({ 
    url: 'https://en.wikipedia.org/w/api.php', 
    data: { 
     action: 'query', 
     generator: 'search', 
     gsrnamespace: 0, 
     gsrsearch: 'te', 
     gsrlimit: 30, 
     prop: 'info|extracts', 
     inprop: 'url', 
     format: 'json', 
     origin: '*' 
    } 
}).done(processResult); 
  • 使用纯AJAX代替邻˚FJSONP
  • 使用origin: '*'(这是必需的)
  • 使用HTTPS而不是HTTP(这将无法正常工作)

不知道,因为它不是很清楚问题得以解决你的问题是...

0

1.You可以使用的getJSON代替$就

$.getJSON("https://en.wikipedia.org/w/api.php?action=query&generator=search&gsrnamespace=0&gsrsearch=te&gsrlimit=10&prop=info|extracts&inprop=url&format=json&callback=?", processResult); 

2.Remember与值加参数(以避免jQuery的AJAX跨域错误)

callback=? 

3.extracts是并不总是可用