小编典典

Ajax跨域请求被阻止:“相同源策略”不允许读取远程资源

ajax

我正在编写一个简单的网站,该网站以一个成语作为输入,并从牛津词典返回其含义和示例。这是我的主意:

我向以下网址发送了请求:

http://www.oxfordlearnersdictionaries.com/search/english/direct/?q=[idiom]

例如,如果习惯用法是“不走远”,我将请求发送至:

http://www.oxfordlearnersdictionaries.com/search/english/direct/?q=not+go+far

然后将我重定向到以下页面:

http://www.oxfordlearnersdictionaries.com/definition/english/far_1#far_1__192

在此页面上,我可以提取成语的含义和示例。这是我的测试代码。它将提醒响应URL:

<input id="idiom" type="text" name="" value="" placeholder="Enter your idiom here">
<br>
<button id="submit" type="">Submit</button>
<script type="text/javascript">
$(document).ready(function(){
    $("#submit").bind('click',function(){
        var idiom=$("#idiom").val();
        $.ajax({
            type: "GET",
            url: 'http://www.oxfordlearnersdictionaries.com/search/english/direct/',
            data:{q:idiom},
            async:true,
            crossDomain:true,
            success: function(data, status, xhr) {
                alert(xhr.getResponseHeader('Location'));
            }
        });

    });
});
</script>

问题是我有一个错误:

跨域请求被阻止:“同源起源”策略不允许读取http://www.oxfordlearnersdictionaries.com/search/english/direct/?q=by+far​​上的远程资源。可以通过将资源移到同一域或启用CORS来解决此问题。

有人可以告诉我如何解决吗?另一种方法也很好


阅读 302

收藏
2020-07-26

共1个答案

小编典典

您的网站是否也在oxfordlearnersdictionaries.com域上?还是您尝试拨打网域且使用相同的原始政策阻止了您?

除非您有权通过oxfordlearnersdictionaries.com域上的CORS设置标头,否则您可能需要寻找另一种方法。

2020-07-26