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

2024-02-24

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

我向以下 URL 发送请求:

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

例如,如果成语是“not go far”,我将向以下地址发送请求:

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 http://www.oxfordlearnersdictionaries.com/search/english/direct/?q=by+far。这可以通过将资源移动到同一域或启用 CORS 来解决。

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


JSONP 或“JSON with padding”是一种在 Web 浏览器中运行的 JavaScript 程序中使用的通信技术,用于从不同域中的服务器请求数据,但由于同源策略,典型的 Web 浏览器禁止这样做。 JSONP 利用了浏览器不对脚本标签强制执行同源策略的事实。 请注意,要使 JSONP 正常工作,服务器必须知道如何使用 JSONP 格式的结果进行回复。 JSONP 不适用于 JSON 格式的结果。

http://en.wikipedia.org/wiki/JSONP http://en.wikipedia.org/wiki/JSONP

StackOverflow 上的好答案:jQuery AJAX 跨域 https://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain

$.ajax({
  type: "GET",
  url: 'http://www.oxfordlearnersdictionaries.com/search/english/direct/',
  data:{q:idiom},
  async:true,
  dataType : 'jsonp',   //you may use jsonp for cross origin request
  crossDomain:true,
  success: function(data, status, xhr) {
    alert(xhr.getResponseHeader('Location'));
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ajax跨源请求被阻止:同源策略不允许读取远程资源 的相关文章

随机推荐

  • 如何快速检查一个对象是否是动态类类型?

    我正在实现一个名为的函数ofType它过滤掉给定类型的所有元素 这是我的代码 class Animal class Mammal Animal class Monkey Mammal class Pig Mammal class Human
  • 如何调试 Firefox 扩展,它似乎无声地崩溃

    我不知道如何调试我的简单扩展 脚本 内容脚本 加载 因为第一个 console log 调用显示在选项卡的控制台中 但随后什么也没有 没有任何错误 也没有第二次 console log 调用 我的问题不是关于解决我的代码问题 肯定有一个 如
  • Matplotlib/Pandas 中条形图的优化

    代码 df pd DataFrame 770 215 179 107 83 82 70 60 57 54 52 index A B C D E F G H I J K ax df plot kind bar stacked False al
  • java 解组 LocalDateTime

    这是我的适配器类 public class LocalDateTimeAdapter extends XmlAdapter
  • 在同一 lambda 函数中从不同帐户访问两个表

    是否可以在一个 lambda 函数中访问两个表 其中一个表与 lambda 函数位于同一帐户中 另一个表位于另一个帐户中 我看过有关的文章跨账户访问委托 https docs aws amazon com IAM latest UserGu
  • 如何在Java中实现具有单应性方法的接口?

    在英语中 同形异义词对是具有相同拼写但不同含义的两个单词 在软件工程中 一对单应性方法是名称相同但要求不同的两种方法 让我们看一个人为的示例 以使问题尽可能清楚 interface I1 return 1 int f interface I
  • Ansible,角色未找到错误

    我尝试对本地主机播放以下剧本来配置 Vagrant 机器 hosts all become yes roles base jenkins 我已经从 github 克隆了必要的角色 它们位于相对路径中roles role name 执行以下命
  • 设置 CLion 构建和二进制目录

    我正在尝试在 CLion 的项目中构建 libwebsockets 在构建期间 libwebsockets 创建其他文件所需的头文件并将其放入 PROJECT BINARY DIR 中 CLion 在为项目创建的随机构建目录中构建所有内容
  • Google MarkerClusterer:对低于特定缩放级别的标记进行分簇?

    我正在使用 Google MarkerClusterer 每当地图缩放级别超过 15 时 我想对所有标记进行分簇 有一个maxZoom在配置选项中设置 但是文档没有明确说明它应该做什么 http google maps utility li
  • 如何在应用程序类中获取屏幕显示指标

    如果我把它放在某个活动类中 它会完美地工作 但是 当我将它放在我的应用程序类中时 该方法getWindowManager 找不到 有什么方法可以在应用程序类中获取 WindowManager 吗 我的应用程序类定义如下 public cla
  • JavaScript 游戏框架

    如今与
  • Heroku docker spring boot 镜像错误 503 H14

    几天前 我尝试将 Spring Boot 应用程序的 docker 镜像部署到 heroku 中 我有以下泊坞窗文件 FROM openjdk 8 jdk alpine LABEL maintainer email protected cd
  • java循环重复程序

    我对 Java 非常陌生 我已经在上课的第二周左右了 我需要我的程序根据用户继续运行或退出 这是一个工资计算 我希望最后说 你想继续吗 y n 我希望 Y 重复我的整个问题程序和不结束程序 我正在使用 Jgrasp 而且我是非常非常新的 我
  • 如何在 FiraCode for Visual Studio 2015 中启用连字

    我下载了 FiraCode 字体 并选择它作为 Visual Studio 中的字体 然而 连字没有显示 并且 wiki 没有针对 Visual Studio 的任何特殊说明 尽管他们暗示它可以工作 因为它列在其 WORKS 列中以提供编辑
  • MySQL仅当查询包装为子查询时出现重复列错误

    我有一个如下所示的选择查询 SELECT FROM A LEFT JOIN B ON B x A y LEFT JOIN C WHERE GROUP BY ORDER BY 所有桌子都有id列和查询运行良好 结果有很多id列没有错误并且驱动
  • ASP.NET [GridView 的水平滚动]

    如何为我的大 GridView 制作水平滚动 尝试包裹一个 div style width 100 div 围绕 GridView
  • 创建独立的 .exe 文件

    我有一个在 Visual Studio 2010 中构建的控制台应用程序 当我实际构建项目时 我在 bin Debug MyProj exe 下获取 exe 文件 当我从其他位置粘贴并运行此 exe 时 它 也需要其他文件 有什么想法我怎样
  • 电子邮件客户端如何处理 cookie?

    假设我在电子邮件中的图像请求上设置了 cookie 因此当用户查看电子邮件中的图像时会设置 cookie 如果用户随后点击电子邮件打开浏览器 浏览器是否可以访问我刚刚设置的 cookie 显然 如果用户将 Outlook 作为电子邮件客户端
  • 可移植类库中的 Thread.Sleep()

    The MSDN文档说Thread Sleep 可以用在portable类库 编译器另有说明 除了自旋循环之外 我还有什么选择 Thread CurrentThread Join 也不存在 项目文件
  • Ajax跨源请求被阻止:同源策略不允许读取远程资源

    我正在编写一个简单的网站 它以习语作为输入 并从牛津词典返回其含义和示例 这是我的想法 我向以下 URL 发送请求 http www oxfordlearnersdictionaries com search english direct