jquery - 来自 Chrome 扩展的 jQuery AJAX 调用问题

标签 jquery xml ajax google-chrome-extension

BLUF:从 Chrome 扩展程序运行 AJAX 调用无法正常工作。

Ajax :

$.ajax({
    type: "GET",
    url: "http://weather.aero/dataserver_current/httpparam?dataSource=metars&requestType=retrieve&format=xml&stationString=KFBG&hoursBeforeNow=1&fields=raw_text",
    dataType: "xml",
    success: function(xml){
        $(xml).find("raw_text").each(function(){
            var metar = $(this).text();
        });

        $("#ob-body").html(metar);
    }
});

所以我试图从需要 GET 请求数据 XML 的站点获取天气数据。他们提供了构建 URL 请求字符串的提示,并且在将 URL 粘贴到地址栏后,相应的 XML 数据会正确显示。

接下来,我组装并运行了 AJAX 调用,但似乎什么也没有发生。我将 success 属性的函数更改为简单的“alert()”并再次运行扩展,然后弹出警告框。

警报出现的事实意味着调用成功,除非我完全出去吃午饭了……那么为什么原始功能不起作用?我意识到搜索 XML 的代码可能不正确,但在我开始处理文档之前发出警告也没有弹出,这告诉我出于某种原因它根本没有进入函数。

最佳答案

这可能是因为 AJAX 请求的同源策略限制。 Chrome 允许您在扩展程序中发出跨域 ajax 请求,但我们需要向扩展程序 list 文件添加权限,如 the document 中所示。

看起来您可能必须向 list 文件添加跨域访问权限

{
  "name": "My extension",
  ...
  "permissions": [
    "http://weather.aero/"
  ],
  ...
}

关于jquery - 来自 Chrome 扩展的 jQuery AJAX 调用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14757479/

相关文章:

java - 无法在 Java 中使用 Batik 编辑 SVG?

javascript - 使用 JavaScript 或 CSS 更改 iframe 的内容

jquery - Ajax beforeSend 功能似乎不起作用

jquery - 带有jQuery的YouTube API的缩略图/网址的动态表

javascript - jQuery 如何创建 DOM 元素

java - 从Android Studio中的 fragment 调用方法时如何避免空指针异常?

java - jquery ajax返回未找到的元素

javascript - mmenu 滑出菜单不起作用

Javascript计算功能 - 不在html中计算

c++ - 哪个是最高效的 C++ XML 解析器?