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内存泄漏问题

 

原文地址:https://www.cnblogs.com/mobileinternet/p/2543653.html