维基百科 API + 跨域请求

2023-12-23

我正在尝试使用 JavaScript 访问维基百科CORS http://en.wikipedia.org/wiki/Cross-origin_resource_sharing%20%29.

据我所知,维基百科应该支持CORS:http://www.mediawiki.org/wiki/API:Cross-site_requests http://www.mediawiki.org/wiki/API:Cross-site_requests

我尝试了以下脚本:创建 XMLHttpRequest+credential/XDomainRequest,添加一些 HTTP 标头(“Access-Control-Allow-Credentials”等)并发送查询。

http://jsfiddle.net/lindenb/Vr7RS/ http://jsfiddle.net/lindenb/Vr7RS/

var WikipediaCORS=
    {
        setMessage:function(msg)
        {
            var span=document.getElementById("id1");
            span.appendChild(document.createTextNode(msg));
        },
        // Create the XHR object.
        createCORSRequest:function(url)
        {
            var xhr = new XMLHttpRequest();

            if ("withCredentials" in xhr)
            {
                xhr.open("GET", url, true);
            }
            else if (typeof XDomainRequest != "undefined")
            {
                xhr = new XDomainRequest();
                xhr.open(method, url);
            }
            else
            {
                return null;
            }
            xhr.setRequestHeader("Access-Control-Allow-Credentials", "true");
            xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
            return xhr;
        },
        init:function()
        {
            var _this = this;
            var url = 'http://en.wikipedia.org/w/api.php?action=opensearch&search=Javascript&format=json';
            var xhr = this.createCORSRequest(url);
            if (!xhr)
            {
                this.setMessage('CORS not supported');
                return;
            }

            xhr.onload = function()
            {
                _this.setMessage(xhr.responseText);
            };
            xhr.onerror = function()
            {
                _this.setMessage('Woops, there was an error making the request.');
            };
            xhr.send();
        }
    };

但我的脚本失败(调用“xhr.onerror”)。我该如何修复它?


我在工作时遇到了同样的问题免费代码训练营 https://en.wikipedia.org/wiki/FreeCodeCamp项目和解决方案是如此简单,这让我笑了,因为我花了几个小时寻找它。在您的 jQuery URL 中包含以下参数。

&origin=*

工作代码笔 http://codepen.io/luckyguy73/full/GqPzZO/

$.getJSON(
  'https://en.wikipedia.org/w/api.php?action=query&format=json&gsrlimit=15&generator=search' +
  '&origin=*' + // <-- this is the magic ingredient!
  '&gsrsearch='q, function(data){ /* ... */ }
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

维基百科 API + 跨域请求 的相关文章

  • 如何监控浏览器中发出的所有自定义事件?

    我想监视网络浏览器中触发的所有自定义事件 任何标准浏览器都可以 需要明确的是 我知道您可以附加事件处理程序来查看何时触发 通常 事件 但如何可靠地检测嵌入对象或 jQuery 脚本是否触发自定义事件 我可以重构浏览器源代码来挂钩事件循环 但
  • Object.assign() - 奇怪的行为需要解释

    我有这个代码 function margeOptions options passedOptions options Object assign options passedOptions let passedOpts a true let
  • 使用shinyjs通过javascript在闪亮的应用程序中操作现有的Leaflet地图

    我有一个闪亮的应用程序 其中包含现有的传单地图 我希望能够在渲染后使用自定义 javascript 通过shinyjs包裹 一个最小的例子如下 app R packages library dplyr library leaflet lib
  • 从 Angular 6 服务中绑定图像

    我有一个端点 它根据某些参数为我提供图像 这不是一个图像网址 而是一个普通图像 因此 当我到达邮递员中的端点时 作为响应 我收到一张图像 JPG 我是否可以在变量中接收该图像并将其绑定到 HTML 标签中 所有问题都有将图像 url 映射到
  • IE8 中的 Javascript 消息超出堆栈空间

    我正在使用 Breeze 1 4 1 Internet Explorer 8 和 ASP NET MVC 4 Web API 我在查询时收到以下消息 查询失败 localhost port breeze Data Metadata 元数据导
  • 为什么 JSON.stringify() 接受 Date 对象?

    至少在 Firefox 中 您可以对 Date 对象进行字符串化 gt gt gt JSON stringify now new Date now 2012 04 23T18 44 05 600Z 这是有效的 因为 在 Firefox 中
  • 赋予 d3 序数轴标签与尺度名称不同

    我有一个序数scale具有不同值的某些标签 我想显示该比例的轴 其中轴标签与比例标签不同 我有这个代码 var width 1000 var height 600 var margins left 100 40 right 25 botto
  • React.js this.props.data.map() 不是一个函数

    我正在搞乱反应并尝试解析和渲染 json 对象 现在 我只是使用硬编码对象设置它以进行测试 而不是从 ajax 调用中获取它
  • 拖放图像上传在服务器上不起作用

    我正在尝试实现拖放图像上传 我在网上找到了一个相当简单的脚本并适合我的使用 在我的本地安装中 文件上传得很好 但在服务器上却不行 从我的调试尝试来看 SERVER HTTP X FILENAME 甚至没有被 php 设置 我尝试了以下方法
  • Django 模板变量从 {% for %} 循环到 Javascript

    这是一个迭代记录的 Django 模板 每条记录都包含一个由 JS 函数填充的 div 为了让 JS 知道要做什么 它需要从每次 for 循环迭代中获取一个变量并使用它 我不知道具体如何实现这一目标或是否可能 我不知道 也许记录在单独的 J
  • 如何混淆或使 JavaScript 文件不可读?

    我的应用程序中有 JavaScript 脚本 其中包含 JavaScript 和 jQuery 函数 所有用户与我的应用程序的交互都是动态的 并且通过 jQuery 传递到应用程序 我意识到 当我在客户端运行我的应用程序时 客户端可以通过查
  • jQuery live() 和ready() 之间的区别?

    两者之间的确切区别是什么live and ready 编辑 发现die http docs jquery com Events die是相反的live ready http docs jquery com Events ready让你注册一
  • Flot 0.8.2 折线图 - 颜色错误

    我正在使用 Flot 折线图并设置它们的颜色 我发现了一个奇怪的错误 在前 3 种颜色之后 绘图对所有其他线条使用最后一种颜色 这不是正确的行为 更有趣的是图例显示了正确的颜色 这是一个已知的错误 var dataSet label d1
  • Javascript/DOM:如何删除 DOM 对象的所有事件侦听器?

    只是问题 有没有办法完全删除对象的所有事件 例如一个div 编辑 我添加每div addEventListener click eventReturner false 一个事件 function eventReturner return f
  • router.navigate 使用查询参数 Angular 5

    我在使用查询参数路由到路由时遇到问题我有一个像这样的函数 goToLink link this router navigate link split 0 queryParams this sortParams link 和这个功能 sort
  • 在 HTML5 画布上创建颜色选择器

    如何在 HTML5 画布上绘制颜色选择器 一个基本的例子是使用getImageData http jsfiddle net eGjak 60 http jsfiddle net eGjak 60 var ctx cv get 0 getCo
  • 如何在javascript中解析 yyyy-MM-dd HH:mm:ss.SSS 格式的日期?

    const time 2016 11 16 00 00 00 000 const date new Date time console info date 似乎 safari 无法解析 yyyy MM dd HH mm ss SSS 格式日
  • 尽管给出了供应商 ID,Web 串行 api 显示“未找到兼容设备”

    Windows 8 1 Chrome v91 0 4472 164 我已根据设备管理器验证了供应商和产品 ID 该设备是使用 Ch340 驱动程序的 Arduino UNO 它在设备管理器中的端口 COM 和 LPT 下列为 USB SER
  • 如何制作饼图聚合数据源?

    Using 适用于 ASP NET MVC 的 Kendo UI 完整版 http www kendoui com 版本 2013 3 1119 2013年11月20日 如果我有这段代码 status chart kendoChart da
  • ES6解构对象赋值函数参数默认值

    您好 我正在查看在传递函数参数时使用对象解构的示例对象解构演示 https developer mozilla org en US docs Web JavaScript Reference Operators Destructuring

随机推荐

  • 具有接口继承的 Winforms 数据绑定

    在我因为这个问题而更改应用程序的域之前 我需要有人确认我所看到的内容 问题是 当针对相互继承的接口进行数据绑定时 您无法看到基本接口上的属性 我正在开发一个使用数据绑定的 WinForms 应用程序 这是在 net3 5中 不 我不能使用w
  • 如何在命令行上提供非 Base 64 编码的密钥

    关于AWS S3工具 同步 和 客户提供的加密密钥 它说here http docs aws amazon com cli latest reference s3 sync html sse c key 字符串 客户提供的加密密钥 用于服务
  • History.pushState 之后前进按钮不起作用

    我已经找到了如何修复后退按钮 但前进按钮仍然无法修复 网址会更改 但页面不会重新加载 这就是我正在使用的 anchor wrapper css position relative slanted css top 0 Do something
  • PHP 错误:警告:无法修改标头信息 - [重复] 已发送标头

    这个问题在这里已经有答案了 您好 我正在用 PHP 编写一个简单的邮件脚本 我发现的每个人都说它可能是前面的空白 但正如你所看到的 我在我的代码中找不到类似互联网上解决方案的内容 错误说 输出从 customers e e 5 httpd
  • 运行时控制台中的核心数据信息和错误

    我在运行时在控制台中遇到了以下消息 我不知道为什么 我到处搜索过 似乎没有人遇到这个 信息 获取响应无法打开文件 Users userName Library Application Support iPhone Simulator 7 0
  • 如何在 C# 中生成唯一的文件名

    我已经实现了一种算法 将为保存在硬盘驱动器上的文件生成唯一的名称 我正在追加DateTime 小时 分钟 秒和毫秒但它仍然会生成重复的文件名 因为我一次上传多个文件 为要存储在硬盘驱动器上的文件生成唯一名称以便没有两个文件相同的最佳解决方案
  • powershell的并行foreach最多使用5个线程吗?

    The throttlelimit的参数foreach parallel可以控制执行脚本时使用多少个进程 但即使我设置了 我也不能有超过5个进程throttlelimit大于5 该脚本在多个 powershell 进程中执行 所以我检查脚本
  • 使用实体框架进行软删除(是历史列)

    我正在使用一个数据库 设计者决定用 IsHistorical 位列标记每个表 没有考虑正确的建模 并且我无法更改架构 在开发与导航属性交互的 CRUD 屏幕时 这会造成一些摩擦 我不能简单地获取一个产品 然后编辑它的 EntityColle
  • 使用 XMLHttpRequest Level 2 模拟文件表单提交

    在我当前的页面上 我使用带有输入元素的旧文件上传 然而 现在我已经从这个非常好的系列文章中实现了拖放 http www sitepoint com html5 file drag and drop http www sitepoint co
  • macOS Catalina 中禁用 SIP 的只读文件系统 [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我正在尝试将一些文件从路径复制到我的库路径 usr lib 我正在尝试使用 sudo cp my file usr lib 我得到了这
  • 工具栏搜索建议主题

    我正在尝试将搜索建议更改为 浅色主题 我正在使用 appcompat v7 22 2 0 库并阅读有关新功能 https philio me styling the searchview with appcompat v21 用于自定义搜索
  • 猪拉丁法翻译

    尝试用 ruby 编写方法来翻译 pig latin 中的字符串 规则 规则 1 如果单词以元音开头 则在单词末尾添加 ay 音 规则2 如果单词以辅音开头 则将其移动到单词的末尾 然后在单词的末尾添加 ay 音 并且当单词以2个辅音开头时
  • Flink 中是否可以实现具有多个工作线程的全局状态?

    在 Flink 文档中 我到处都看到状态对于映射函数和工作线程来说是独立的 这在独立方法中似乎很强大 但是如果 Flink 在集群中运行怎么办 Flink 能否处理所有工作人员都可以添加数据并查询数据的全局状态 来自 Flink 关于状态的
  • 在 spring-boot 2.6.2 中,无法从类路径初始化 Logback 日志记录:logback-spring.groovy

    我将 spring boot 2 5 6 的 spring boot 应用程序迁移到 spring boot 2 6 2 但从那时起 启动告诉 java lang IllegalStateException 无法从类路径初始化 Logbac
  • 列出可供下载的文件 - 文件存储在仅应用程序可访问的位置

    我有一组 pdf 文件存储在只能由应用程序访问的位置 因此这些文件无法通过 http 直接访问 文件路径由数据库存储 当用户选择下载文件时 将执行以下代码 Response ContentType Application pdf Respo
  • 调试时无法查看变量值

    我正在尝试调试我正在处理的当前应用程序的部分 但是当我尝试检查属性 变量的值时 我收到错误 Cannot evaluate expression because a thread is stopped at a point where ga
  • Angular 5无法匹配延迟加载模块的命名出口上的任何路由[重复]

    这个问题在这里已经有答案了 我的根模块的路线是这样的 RouterModule forRoot path redirectTo management portal pathMatch full path management portal
  • 忽略绑定初始化

    最初的问题来自于关于折线的个人项目Xamarin Forms Map https github com Emixam23 XamarinByEmixam23 tree master Detailed 20Part Controls Map
  • 为什么 dropna() 不起作用?

    系统 Cloudera Quickstart VM 5 4 上的 Spark 1 3 0 Anaconda Python 版本 这是一个 Spark 数据框 from pyspark sql import SQLContext from p
  • 维基百科 API + 跨域请求

    我正在尝试使用 JavaScript 访问维基百科CORS http en wikipedia org wiki Cross origin resource sharing 20 29 据我所知 维基百科应该支持CORS http www