无法使http请求javascript ns错误失败

Abhishekkannojia

我开始使用addon-sdk学习插件开发。我正在写一个小的插件脚本,该脚本显示当前网页的IP地址。

我使用了一个提供JSON数据值的网站。
http://dazzlepod.com/ip/stackoverflow.com.json

现在的问题是,当我发出XMLHttp请求以获取它显示的JSON值时 0x80004005 (NS_ERROR_FAILURE)

消息:[异常...“失败” nsresult:“ 0x80004005(NS_ERROR_FAILURE)”位置:.... ...... :: httpGet ::第30行“数据:否]

这是我的脚本代码

function getDomainInfo(url) {
    var a = document.createElement('a');
    a.href = url;

    var domain = a.hostname;
    var requestURL = "http://dazzlepod.com/ip/"+domain+".json";
    //alert(requestURL);
    return httpGet(requestURL);
}

function httpGet(theUrl)
{
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            return xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", theUrl, false );
    xmlhttp.send();    
}

var check = self.port.on("clicked", function(url) {
    var json = getDomainInfo(url);
    //alert(json);
});

谁能解释为什么会这样,我该怎么办?
我是插件开发的新手。
谢谢你。

GitHUb链接 https://github.com/kannojia/show-ip

Abhishekkannojia

好的,我解决了问题。问题是,由于相同的原始策略,您无法向其他域发出XMLHttp请求,而驻留在其他域上
因此,当contentScript向服务器发出XMLHttp请求时,浏览器将抛出NS_error_failure

我发现的解决方案是使用Addon SDK的Request APIRequest对象用于发出GET,POST或PUT网络请求。Request对象不受相同来源策略的约束。
因此,我没有使用contentScript发出Http请求,而是使用了请求API并获得了有效的响应。

修改后的代码main.js

var widgets = require("sdk/widget");
var tabs = require("sdk/tabs");
var data = require("sdk/self").data;
var Request = require("sdk/request").Request;

var url;
var domain_name;
var requestURL;

var showipWidget = widgets.Widget({
    id : "show-ip",
    label : "Display IP Address of current Page",
    contentURL : data.url("lens_icon.png"),
    contentScriptFile : [data.url("click_handler.js"),data.url("jquery-1.8.3.min.js")],
    panel : infoPanel,
    onClick : function() {
        var curtab = tabs.activeTab;
        url = curtab.url;
        this.port.emit('getDomain',url);
    }   
});

showipWidget.port.on("setDomain", function(domain) {
    domain_name=domain;
    getDomainInfo(domain_name);
});

function getDomainInfo(domain) {
    requestURL = "http://dazzlepod.com/ip/"+domain+".json";
    //requestDomainInfo.get();

    Request({
      url: requestURL,
      onComplete: function (response) {
        var out = response.json;
        console.log("Response: "+out.ip);
      }
    }).get();

}

内容脚本click_handler.js

function getDomain(url) {
    var a = document.createElement('a');
    a.href = url;
    var domain = a.hostname;
    return domain;
}

var check = self.port.on("getDomain", function(url) {
    var domain = getDomain(url);
    self.port.emit("setDomain",domain);
});

所有文件都在GitHub上。
感谢大家的帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript Http Get Request错误:NS_ERROR_FAILURE

来自分类Dev

WCF请求失败,HTTP状态为400错误。元数据包含无法解析的引用:http://localhost/MyService.svc/mex

来自分类Dev

向HTTP发出HTTP请求时发生错误->握手失败

来自分类Dev

HTTP请求失败!HTTP / 1.1 400错误请求

来自分类Dev

电报+ PHP(Windows 7):无法打开流:HTTP请求失败!找不到HTTP / 1.1 404

来自分类Dev

file_get_contents无法打开流:HTTP请求失败!HTTP / 1.1 463

来自分类Dev

HTTP请求在PHP错误请求中失败

来自分类Dev

错误域的HTTP请求

来自分类Dev

http:// localhost:3000 / api / stuff的Http失败响应:400错误的请求

来自分类Dev

Git-Azure DevOps“错误:RPC失败; HTTP 413 curl 22请求的URL返回错误:413”

来自分类Dev

无法从API接收HTTP响应-错误的请求错误

来自分类Dev

调用http发布请求时发生错误。ClientException(无法解析HTTP,67与13不匹配)

来自分类Dev

git clone始终失败,并显示“无法发送HTTP请求”

来自分类Dev

jQuery跨域AJAX请求失败,XMLHttpRequest无法加载错误

来自分类Dev

Android失败http请求...我的错误在哪里?

来自分类Dev

收到请求失败的错误JavaScript

来自分类Dev

git ls-remote引发致命错误:HTTP请求失败

来自分类Dev

Alamofire HTTP请求失败

来自分类Dev

Google登录失败,无法打开流Http请求失败,请求失败

来自分类Dev

HTTP请求:400错误

来自分类Dev

无法打开流:HTTP请求失败!静态地图Google API中的HTTP / 1.0 403禁止警告错误

来自分类Dev

POST请求错误:NSURLConnection HTTP加载失败iOS 10

来自分类Dev

Google联系人API无法打开流:HTTP请求失败!HTTP / 1.0 403 Forbidden'

来自分类Dev

xmlHTTP请求错误:“失败”

来自分类Dev

HTTP请求失败!尝试从youtube获取内容时出现HTTP / 1.0 400错误请求

来自分类Dev

Python 请求失败,无法建立新的连接错误 10061

来自分类Dev

THttpClient 无法打开流:HTTP 请求失败!HTTP/1.1 400 错误请求

来自分类Dev

错误的 http 请求错误

来自分类Dev

请求失败,HTTP 状态为 400:从 Windows 应用程序调用 Web 服务时请求错误

Related 相关文章

  1. 1

    JavaScript Http Get Request错误:NS_ERROR_FAILURE

  2. 2

    WCF请求失败,HTTP状态为400错误。元数据包含无法解析的引用:http://localhost/MyService.svc/mex

  3. 3

    向HTTP发出HTTP请求时发生错误->握手失败

  4. 4

    HTTP请求失败!HTTP / 1.1 400错误请求

  5. 5

    电报+ PHP(Windows 7):无法打开流:HTTP请求失败!找不到HTTP / 1.1 404

  6. 6

    file_get_contents无法打开流:HTTP请求失败!HTTP / 1.1 463

  7. 7

    HTTP请求在PHP错误请求中失败

  8. 8

    错误域的HTTP请求

  9. 9

    http:// localhost:3000 / api / stuff的Http失败响应:400错误的请求

  10. 10

    Git-Azure DevOps“错误:RPC失败; HTTP 413 curl 22请求的URL返回错误:413”

  11. 11

    无法从API接收HTTP响应-错误的请求错误

  12. 12

    调用http发布请求时发生错误。ClientException(无法解析HTTP,67与13不匹配)

  13. 13

    git clone始终失败,并显示“无法发送HTTP请求”

  14. 14

    jQuery跨域AJAX请求失败,XMLHttpRequest无法加载错误

  15. 15

    Android失败http请求...我的错误在哪里?

  16. 16

    收到请求失败的错误JavaScript

  17. 17

    git ls-remote引发致命错误:HTTP请求失败

  18. 18

    Alamofire HTTP请求失败

  19. 19

    Google登录失败,无法打开流Http请求失败,请求失败

  20. 20

    HTTP请求:400错误

  21. 21

    无法打开流:HTTP请求失败!静态地图Google API中的HTTP / 1.0 403禁止警告错误

  22. 22

    POST请求错误:NSURLConnection HTTP加载失败iOS 10

  23. 23

    Google联系人API无法打开流:HTTP请求失败!HTTP / 1.0 403 Forbidden'

  24. 24

    xmlHTTP请求错误:“失败”

  25. 25

    HTTP请求失败!尝试从youtube获取内容时出现HTTP / 1.0 400错误请求

  26. 26

    Python 请求失败,无法建立新的连接错误 10061

  27. 27

    THttpClient 无法打开流:HTTP 请求失败!HTTP/1.1 400 错误请求

  28. 28

    错误的 http 请求错误

  29. 29

    请求失败,HTTP 状态为 400:从 Windows 应用程序调用 Web 服务时请求错误

热门标签

归档