没有来自维基百科的服务器响应通过Ajax

时间:2015-09-04 16:37:05

标签: javascript jquery ajax

我是JavaScript / jQuery的新手,所以作为一个不错的“HelloWorld”项目,我想构建一个网页,它只是抓取随机的维基百科文章并显示标题和第一段。谷歌搜索,看起来像ajax是这样做的方式,所以我写了简单的脚本(现在有一个固定的URL):

<script>
    $(document).ready(function () {
        $.ajax({
            url: 'https://en.wikipedia.org/wiki/Flemingdon_Park',
            type: 'GET',
            dataType: "html",
            success: function (data)
            {
                alert('Success!');
                $('#MainHeader').html($(data).find('#firstHeader').html());
            },
            error: function (xmlHttpRequest, textStatus, errorThrown)
            {
                var serverNotReached = xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0;
                if (serverNotReached)
                    alert("No response from the server!");
                else
                    alert(errorThrown);
            }
        });
    })
</script>

我的问题是我只能从维基百科获得“服务器无响应”。我尝试使用Postman和完全相同的URL进行GET,并且按照我的预期返回了html。接下来我用http://stackoverflow.com尝试了脚本,但同样的事情。最后,我尝试http://www.msn.com并且 工作了。我假设我在这里缺少一些基本的东西,但我不确定是什么。

2 个答案:

答案 0 :(得分:0)

听起来你违反了Cross Origin Resource Sharing

试试JSONP?如果你只是搞乱并且没有安全问题。

答案 1 :(得分:0)

http://en.wikipedia.org/w/api.php正是您要找的。它有一个非常详细的文档,并支持JSONP:

format=jsonfm更改为format=json