jQuery + JSONP + 雅虎查询语言

2024-04-18

我想从外部来源获取实时汇率,所以我找到了这个很棒的网络服务:

该服务运行得非常出色,唯一的缺点是它不提供 JSONP 结果,仅提供 XML。因此,在尝试使用 jQuery $.ajax() 使用此 Web 服务时,我们遇到了跨浏览器问题。

所以我发现雅虎查询语言 http://developer.yahoo.com/yql它以 JSONP 形式返回结果,并且还 mangae 来使用其他 Web 服务并向我返回结果。这也有效,下面是一个示例 URL:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fwww.webservicex.net%2FCurrencyConvertor.asmx%2FConversionRate%3FFromCurrency%3DNOK%26ToCurrency%3DEUR'&format=json&diagnostics=true&callback=cbfunc

此 URL 返回 JSONP 结果并且工作起来就像一个魅力,但当我在代码中使用它时出现问题:

$.ajax({
  type: "GET",
  url: urlToWebservice,
  contentType: "application/json; charset=utf-8",
  dataType: "jsonp",
  success: function(data) {
    $("#status").html("OK: " + data.text);
  },
  error: function(xhr, textStatus, errorThrown) {
    $("#status").html("Unavailable: " + textStatus);
  }
});

当我尝试运行此代码时,没有任何反应,并且我可以在我的 Firebug javascript 调试器中看到此错误消息:

cbfunc is not defined

cbfunc 是包围 JSON 响应的容器的名称,但为什么它说未定义?

EDIT:

这是我的新代码,但我仍然得到cbfunc is not defined

$.ajax({
  url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fwww.webservicex.net%2FCurrencyConvertor.asmx%2FConversionRate%3FFromCurrency%3DNOK%26ToCurrency%3DEUR'&format=json&callback=cbfunc",
  dataType: 'jsonp',
  jsonp: 'callback',
  jsonpCallback: 'cbfunc'
});

function cbfunc(data) {
  alert("OK");
}

并且“OK”消息永远不会被触发......


如果可用,请使用jsonpCallback调用中的参数$.ajax like:

 jsonpCallback: "cbfunc",

它的描述,来自jQuery API 文档 http://api.jquery.com/jQuery.ajax/ reads:

指定 jsonp 请求的回调函数名称。将使用该值代替 jQuery 自动生成的随机名称。

文档后来继续说:

最好让 jQuery 生成一个唯一的名称,因为这样可以更轻松地管理请求并提供回调和错误处理。当您想要启用更好的 GET 请求浏览器缓存时,您可能需要指定回调。

然而它是not建议在使用 YQL 时使用这种“首选”行为。确切地说,为什么这种方法不理想可能会使这个答案过于冗长,因此这里有一个链接(来自 YQL 博客),详细介绍了 jQuery 首选方法的问题,利用jsonpCallback等等:避免 YQL 和管道中的速率限制和被禁止:缓存是你的朋友 http://www.yqlblog.net/blog/2010/03/12/avoiding-rate-limits-and-getting-banned-in-yql-and-pipes-caching-is-your-friend/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery + JSONP + 雅虎查询语言 的相关文章

  • 响应式网格布局框架[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何记录返回的事件发射器

    如何记录所发出的事件stream返回于MyFunc 与 JSDoc MyFunc description param Object opts description return Stream description function My
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 使react-leaflet能够离线使用

    我一直在使用反应传单 https github com PaulLeCam react leaflet图书馆 到目前为止运作良好 现在我希望网站预加载尽可能多的图块 以便网络应用程序 也是 PWA 可以在没有互联网的情况下使用 我找到了一些
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • KeyboardEvent.keyCode 已弃用。这在实践中意味着什么?

    根据 MDN 我们绝对应该not正在使用 keyCode财产 它已被弃用 https developer mozilla org en US docs Web API KeyboardEvent keyCode https develope
  • 如何清除WebGL中的矩形区域?

    WebGL 有一个clear清除整个表面的方法 清除表面的特定矩形的最佳方法是什么 例如 我想将一个从 50 50 开始的 100x100 像素框设置为全零 ARGB 0 0 0 0 我现在能想到的就是用一个写入零的片段着色器绘制一个四边形
  • Flux + React.js - 操作中的回调是好还是坏?

    让我解释一下我最近遇到的问题 我有 React js Flux 驱动的应用程序 有一个列表显示文章数量 注意 应用程序中有多个不同的列表 和文章详情查看在里面 但每个列表只有一个 API 端点 它返回文章数组 为了显示我需要的详细信息fin
  • 是否可以使用打字稿映射类型来创建接口的非函数属性类型?

    所以我正在研究 Typescript 的映射类型 是否可以创建一个接口来包装另一种类型 从而从原始类型中删除函数 例如 interface Person name string age number speak void type Data
  • 如何使 jQuery 向上动画

    我有一些 jquery 运行得相当好 但是当我将鼠标悬停在有问题的元素上时 底部向下扩展 这并不意外 但不是所需的效果 我希望元素的底部保持静止 而元素的顶部向上扩展 如果您想查看我目前拥有的内容 您可以导航至http demo ivann
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 加载另一个 JS 脚本后加载

    这是我的代码 very big js file lots of html stuff 问题是 这些是异步加载的 有没有办法等待第二个脚本直到第一个脚本加载 如果您使用 jQuery 有一个非常简单的方法可以通过获取脚本 https api
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • Fancybox 画廊组

    我正在使用 fancyboxhttp fancyapps com fancybox http fancyapps com fancybox 我的问题是 我可以将不同的资源组合在一起吗 我的意思是同一画廊 或 组 中带有内嵌或视频的图像 如果
  • 需要将用户名和密码添加到 VB.NET Web 服务客户端中的 SOAP 标头

    我需要查询一个进行基本身份验证的 Web 服务 将用户名和密码放在请求标头中 我的客户端是用 VB NET Visual Basic Express Edition 2010 编写的 我已将 Web 服务添加到服务引用中 它为我自动生成了合
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定

随机推荐

  • Impala 表中的压缩

    我想了解 Impala 表中的压缩 但找不到可供研究的材料 有哪些不同的技术以及我在哪里可以找到研究它的材料 主要技术为compaction是为了避免small file problem这取决于您的用例 例如 您可能有一个将小文件写入的进程
  • 函数式 GUI 编程可能吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我最近发现了 FP bug 试图学习 Haskell 到目前为止所看到的东西给我留下了深刻的印象 一流的函数 惰性求值和所有其他好处 我还不是专
  • Jfrog CLI 不尊重配置的 API 密钥

    我正在使用 Powershell DSC 设置 Windows Server 2012 R2 盒子 作为配置过程的一部分 我将配置 jfrog exe 并作为服务帐户执行配置命令 jfrog rt config url localArtif
  • 读取 WCF 消息正文两次 - “消息无法读取”

    我有一个 WCF 消息 Channels Message 我正在尝试使用 GetBody 提取正文 但是 我注意到我只能执行一次 如果我尝试再次使用 GetBody 我会收到 此消息无法支持该操作 因为它已被读取 知道如何重新阅读邮件正文吗
  • F# 有异步验证库吗?

    我在代码中经常使用 asyncResult 但它会在第一个错误时退出 asyncResult let a allGood let b thisReturnsError let c neverExecuted 但有时我想执行所有函数并总结错误
  • 具有多个条件的 SqlAlchemy 案例

    我正在尝试做这样的事情 x db session query Candidate func count case Jobs interview type PHONE SCREEN and Jobs interview type INCLIN
  • 补丁优先级及其对 Criminsi 基于范例的修复的影响

    我正在尝试实现基于示例的修复 如提议的Criminsi http research microsoft com pubs 67276 criminisi tip2004 pdf等等人 以其原始格式 在进行进一步优化之前 我有一些理论上的疑问
  • 从BackgroundWorker C# 更改控件的属性

    我正在尝试从目录加载一堆文件 在加载时显示进度条状态以及显示正在处理哪个文件的标签 private void FileWorker DoWork object sender DoWorkEventArgs e for int i 0 i l
  • 从 URL 加载图像

    我正在尝试根据以下教程在我的应用程序中加载一些图像 http www anddev org novice tutorials f8 imageview with loading spinner t49439 html http www an
  • NSIS 滚动许可证欢迎屏幕

    我的安装程序在与滚动许可证插件交互时遇到问题 安装程序在没有插件的情况下也能很好地工作 这就是插件让我包括的内容 include MUI nsh define MUI PAGE CUSTOMFUNCTION SHOW LicenseShow
  • 如何限制循环的迭代次数?

    假设我有一个项目列表 我想迭代其中的前几个 items list range 10 I mean this to represent any kind of iterable limit 5 简单的实现 来自其他语言的 Python 新手可
  • 从 Octave 导出的图中具有透明背景

    我在 Win 10 下使用便携式 Octave 5 1 0 我的意思是写一个具有透明背景的 png 绘图 免责声明 这个问题与下面链接的两个问题类似 我选择了提出当前不同的问题 https meta stackoverflow com qu
  • GCE - HTTP 负载平衡返回错误 502(错误网关) - 仅当通过 C# 发布时

    我们有一个 C 应用程序 可以获取数据并将其发布到我们的网站 在使用 Compute Engine 测试 HTTP 负载平衡时 我们遇到的唯一问题是当 C 应用程序尝试提交数据时返回 502 Bad Gateway HTTP 负载平衡中是否
  • 将名字和姓氏添加到 Django-Registration

    我使用的是默认的Djangoregistration 版本 0 8 在我的项目中 用户只需输入他们的用户名 电子邮件和密码 但是 我希望用户也在注册页面上输入他们的名字和姓氏 我怎样才能轻松做到这一点 您可以做的是覆盖默认的 UserReg
  • numpy reshape 是如何工作的?

    我有一个 numpy 数组中的数据 a np arange 100 a a reshape 20 5 当我打字时 a 10 它返回 array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1
  • 为什么 sscanf() 不将 CSV 文件中的行读入数组?

    我正在尝试将 CSV 文件中的整数读入二维数组 这是我的代码 FILE fp fopen argv 1 r int counter 0 char line 50 while fgets line 50 fp counter int arry
  • msscript.ocx 从哪里安装

    我在我的应用程序中使用 msscript ocx 它是 Windows 的 ActiveX 脚本主机 尽管我希望能够对高度可定制的 XP 嵌入式 XPe 使用相同的功能 1 我想知道在XPe上是否可以选择性安装msscript ocx 2
  • 为什么我的 Android 应用程序(具有 root 权限)无法访问 /dev/input?

    我的应用程序针对已root的Android设备 它具有root权限并且需要访问该目录 dev input 但为什么它会抛出opendir failed Permission denied even dev input已经是chmod to
  • 读取 bash 脚本中 psql 返回的错误

    我需要在从 bash 脚本运行 psql 时检查错误 这是我们如何在脚本中运行的示例 return value psql X POSTGRES CONNECTION STRING f build table sql w b A q t ps
  • jQuery + JSONP + 雅虎查询语言

    我想从外部来源获取实时汇率 所以我找到了这个很棒的网络服务 该服务运行得非常出色 唯一的缺点是它不提供 JSONP 结果 仅提供 XML 因此 在尝试使用 jQuery ajax 使用此 Web 服务时 我们遇到了跨浏览器问题 所以我发现雅