Ajax 请求维基百科 API 问题

Ajax request to Wikipedia API issue

我想向维基百科提出一个简单的请求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 代码中无法正常工作。(必须有 "extract" 键)。

我认为问题出在符号“|”中(看ajax):

        prop:"info|extracts",

如何修复?

1.You 可以使用 getJSON 而不是 $.ajax

$.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添加带值的参数(避免jQueryAJAX跨域错误)

callback=?

3.extracts 并不总是可用

$.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 而不是 JSONP
  • 使用 origin: '*'(这是必需的)
  • 使用 HTTPS 而不是 HTTP(这行不通)

不确定这是否能解决您的问题,因为您的问题不是很清楚...