Jquery 当MediaWiki拒绝AJAX请求时更改请求头

Jquery 当MediaWiki拒绝AJAX请求时更改请求头,jquery,ajax,mediawiki-api,Jquery,Ajax,Mediawiki Api,我将下面的AJAX请求发送到MediaWiki API,控制台中出现以下消息:请求的资源上不存在“Access Control Allow Origin”头。起源'https://preview.cs50.io因此,不允许访问。我没有做任何邪恶的事情,我正在使用Cloud9IDE。我尝试将headers选项添加到AJAX请求的一个简单对象中,该对象具有一个以我的域为值的源键,但API也不喜欢这样 此处的响应表明,出于安全原因,程序员不应设置源标题,这是有意义的。不过,我需要访问API。我有追索权

我将下面的AJAX请求发送到MediaWiki API,控制台中出现以下消息:请求的资源上不存在“Access Control Allow Origin”头。起源'https://preview.cs50.io因此,不允许访问。我没有做任何邪恶的事情,我正在使用Cloud9IDE。我尝试将headers选项添加到AJAX请求的一个简单对象中,该对象具有一个以我的域为值的源键,但API也不喜欢这样

此处的响应表明,出于安全原因,程序员不应设置源标题,这是有意义的。不过,我需要访问API。我有追索权吗

这是我第一次使用MediaWiki API和文档

    $(document).ready(function () {
        // future search parameter provided by user
        var search = "french";
        // AJAX request options for MediaWiki API
        var ajaxOptions = {
            crossDomain: true,
            dataType: "json",
            url: "https://en.wikipedia.org/w/api.php",
            method: "GET",
            data: {
                action:"query",
                list:"search",
                srsearch:search,
                // titlesnippet may be more desirable, try both
                srprop:"snippet",
                srlimit:"50",
                pwpprop:"title",
                // may not be necessary given use of srlimit above, try and see
                pwplimit:"50",
                format:"json"
            }
        };
        // AJAX request
        $.ajax(ajaxOptions).done(updateDOM);

        function updateDOM (json) {
            $("#message").html(JSON.stringify(json));
        }

    });

这只是更仔细地阅读文档的一个教训。MediaWiki文档将永远持续下去。当你看到其中的许多树时,很容易迷失在API林中,特别是如果你对API的使用经验有限,或者没有MediaWiki的使用经验

如果以类似于上述方式发出AJAX/CORS请求,只需添加

origin:"*"

到ajaxOptions对象内部的数据对象的末尾,应该解决这种情况

作为jsonp请求进行尝试