小编met*_*jus的帖子

如何拦截不同JS库所做的所有AJAX请求

我建立与不同的JS库的web应用程序(AngularJS,的OpenLayers,...),并需要一种方法来拦截所有AJAX响应,以便能够在情况下登录的用户会话超时(响应回来与401 Unauthorized地位),重定向他到登录页面.

我知道AngularJS提供interceptors管理此类方案,但无法找到实现此类注入OpenLayers请求的方法.所以我选择了一种香草JS方法.

在这里,我发现了这段代码......

(function(open) {

    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {

        this.addEventListener("readystatechange", function() {
            console.log(this.readyState); // this one I changed
        }, false);

        open.call(this, method, url, async, user, pass);
    };

})(XMLHttpRequest.prototype.open);
Run Code Online (Sandbox Code Playgroud)

...我改编并看起来像预期的那样(仅在最后一个Google Chrome上测试过).

当它修改XMLHTTPRequest的原型时,我想知道这可能导致多么危险,或者它是否会产生严重的性能问题.顺便说一句,有没有有效的替代方案?

更新:如何在发送请求之前拦截请求

上一个技巧可行.但是如果在同一个场景中你想在发送请求之前注入一些标题呢?请执行下列操作:

(function(send) {

    XMLHttpRequest.prototype.send = function(data) {

        // in this case I'm injecting an access token (eg. accessToken) in the request headers before it gets sent
        if(accessToken) this.setRequestHeader('x-access-token', accessToken);

        send.call(this, data);
    };

})(XMLHttpRequest.prototype.send);
Run Code Online (Sandbox Code Playgroud)

javascript ajax interceptor

106
推荐指数
1
解决办法
5万
查看次数

从文件系统中删除该框后,如何从全局状态中删除Vagrant框?

//,我意识到它还在运行之前删除了一个包含正在运行的Vagrant框的文件夹.

我现在如何从Vagrant(全局状态)中删除它?

我已经删除了Virtualbox VM.

virtualbox vagrant devops

85
推荐指数
2
解决办法
3万
查看次数

如何选择:d3.js中的last-child?

我需要操纵text轴的第一个和最后一个刻度的元素,使它们更朝向中心.

我试图选择它们,当时只有一个类似svg.select('.tick:last-child text')但是它不起作用.然后我申请.transform('translate(4,0)')......

难道我做错了什么?我怎样才能做到这一点?

select d3.js

10
推荐指数
4
解决办法
2万
查看次数

iPython Notebook:将单元格从可变内容渲染为HTML

在iPython Notebook中,我有一个单元格,我在其中定义一个变量(比如说html)并为其分配一个html内容(http get请求的响应内容).我想将此变量作为html呈现到另一个单元格中.可能吗?我该怎么做?

例如:

[1] html = '''<html><h1>a heading</h1><ul><li>one</li><li>two</li><li>three</li></ul></html>'''
Run Code Online (Sandbox Code Playgroud)

我想在下一个单元格中呈现这一点.

jupyter-notebook

7
推荐指数
1
解决办法
1569
查看次数

如何移动Vagrant VM文件夹?

有没有办法移动vagrant vm文件夹而没有nfs共享文件夹和/ etc/exports的问题?

每当我尝试操作任何其他盒子时(例如:),尝试移动机器(暂停)会导致以下错误vagrant up:

==> default: Exporting NFS shared folders...
NFS is reporting that your exports file is invalid. Vagrant does
this check before making any changes to the file. Please correct
the issues below and execute "vagrant reload":

exports:14: path contains non-directory or non-existent components: /Users/[...]/vm
exports:14: no usable directories in export entry
exports:14: using fallback (marked offline): /
Run Code Online (Sandbox Code Playgroud)

vagrant

7
推荐指数
1
解决办法
3218
查看次数

Postgres 多个表的外键

我有以下概念性问题,我还没有找到令人满意的解决方案。我将用一个例子来解释它。

我有 2 个表catsdogs,它们由不同的属性组成(它们需要是不同的表,因为我的实际情况实际上更复杂)。我可以喂养这些“动物”,并且我想跟踪有关此喂养操作的一些信息(例如[animal_fed],,,,,food_type... )。food_quantitydate

现在我正在使用feeds具有以下模式的表:animal_id INTEGER, table_name VARCHAR(50)(可能是"cats""dogs",但会有更多的物种..),[other fields]

我对这个解决方案完全不满意,因为它使检索有关被喂养的动物的一些信息变得很痛苦(如果可能的话,但必须有一种方法..)select from feeds(类似于join)。

我怎样才能更好地解决这个问题?

使用“父”表是一个好的解决方案吗?

或者,如果您认为我的实际方法很好,我怎样才能"join"获得所有feeds信息加上动物name

谢谢。

sql postgresql foreign-keys

6
推荐指数
1
解决办法
7319
查看次数

AngularJS - 在指令中使用局部变量

我无法理解指令js范围的工作原理.我的意思是看起来主指令函数中声明的局部变量在指令的所有实例之间共享.例如.

// HTML
<ul>
    <li my-dir="1"></li>
    <li my-dir="2"></li>
    <li my-dir="3"></li>
</ul>

//JS
.directive('myDir', function($timeout) {
    var data, _el;
    function init(){
        _el.text(data);
    }
    function link(scope, el, attrs) {
        _el = el;
        data = attrs.myDir;
        $timeout(init,500);
    }
    return {
        restrict: 'A',
        link: link
    };
});
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我将只获得填充了最后一个值的最后一个元素,因为_el每次都会分配一个新元素.在这里你有一个以上的plnkr:http://plnkr.co/edit/NXV6w4MZbROhnZ524wvx?p=preview

我该怎么做呢?

angularjs-directive

5
推荐指数
1
解决办法
6244
查看次数

Facebook测试应用中的无效范围错误

突然之间,我在Facebook应用程序的测试版本中登录时遇到"Invalid Scopes:manage_pages"错误.完整的错误消息是:

无效的范围:manage_pages.此消息仅向开发人员显示.如果存在,您应用的用户将忽略这些权限.请阅读以下文档获取有效权限:https://developers.facebook.com/docs/facebook-login/permissions

实时应用程序运行正常.在测试应用程序中一切正常,直到今天早上.

如果我阅读提供的文档链接,看起来manage_pages权限仍在使用中.

有人知道它有什么问题吗?

facebook facebook-graph-api facebook-apps

5
推荐指数
1
解决办法
2166
查看次数

Rx.js与promises的并发性

我想通过一系列异步/网络操作(远程HTTP请求)来处理对象数组.

在其中一些操作中,我想确保不会同时处理多达X个项目.

我怎样才能做到这一点?

示例代码:

function someAsyncOp(item) {...} // returns a promise

var source = Rx.Observable.from([{item1},{item2},...])
source
  .flatMap((item) => {

    // I WANT THE FOLLOWING OPERATION TO BE EXECUTING  
    // ON AT MAX 10 ITEMS AT A TIME, NEXT ITEM SHOULD
    // BE SUBMITTED ONLY WHEN A SLOT GETS FREED AS A 
    // RESULT OF THE PROMISE SUCCEEDING OR FAILING

    return Rx.Observable.fromPromise(someAsyncOp(item))

  })
  .subscribe(
    console.log, 
    console.error, 
    () => console.log('completed')
  )
Run Code Online (Sandbox Code Playgroud)

javascript concurrency promise rxjs

2
推荐指数
1
解决办法
246
查看次数