zoukankan      html  css  js  c++  java
  • Rails后台,Firefox Addons前端,JS的AJAX调用

    最近要开发一个程序,需要用到firefox addons前端,利用js发起ajax请求,后端用rails完成。

    Firefox Addons材料很是庞杂,初入门者可能被xul, xpcom, fuel等这些名词完全搞的晕头转向,FF嫌这还不够乱,又推出它的addons builder,试图规范化Addons的开发,又给出两个名词概念:content js和extension js,如果你下载FF的SDK,例子居然都运行不了。

    不必崩溃,我们可以找几个开源的代码作为基础,这里我参考的是一个国人写的ff_nextpage(https://github.com/sylecn/ff_nextpage),利用这个作为框架,搭建我们自己的addons

    要想在addon里调用ajax,幸运的是ff既没有限制cross-domain,也没有限制ajax调用行为自身。这里需要注意的是:

    1、FF没有太多说明在Addons里如何实现AJAX,我暂且将其视为跟普通JS没有区别的调用

    2、当传递JSON DATA, POST给服务器的时候,需要同时设定content-type和accept两个头域

    var dataToServer = {city: "shenzhen", summaries:this.allLinks};

    var stringToServer = JSON.stringify(dataToServer);

    var postBack = new XMLHttpRequest();

    postBack.onreadystatechange =

        function(){

            if (postBack.readyState == 4) {

                    if (postBack.status == 200) {

                        // Success

                        return;

                    }

                    //alert(postBack.status); //once error found

            }

            };

     

       postBack.open("POST", SERVER, true, null, null);  

        postBack.setRequestHeader("Content-Type", "application/json;charset=UTF-8");

        postBack.setRequestHeader("Accept", "application/json");

     postBack.send(stringToServer);

    3、Rails天生就支持json,因此在服务器端没有什么太多要注意的东西。

    下次分享一下,如何搞定FF的Addons内存泄漏问题

     

  • 相关阅读:
    BZOJ1527 : [POI2005]Pun-point
    2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
    2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)
    NAIPC-2016
    BZOJ2498 : Xavier is Learning to Count
    ACM ICPC Vietnam National Second Round
    XVI Open Cup named after E.V. Pankratiev. GP of Ukraine
    XVI Open Cup named after E.V. Pankratiev. GP of Peterhof
    HDU5509 : Pattern String
    BZOJ4583 : 购物
  • 原文地址:https://www.cnblogs.com/mobileinternet/p/2543653.html
Copyright © 2011-2022 走看看