2017-06-17 64 views
0

我为aJax编写了一个名为myCsrfAjax的自定义函数。javascript - 无法捕捉嵌套函数中的外部函数

function myCsrfAjax(method, url, callback, jsonData) { 
    var ajax = new XMLHttpRequest(); 
    ... 
    ... 
} 

它工作正常。但是,在这种情况下,我把它放在一些嵌套函数,就像,

var app = require('express'); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 
io.on("connection", function (socket) { 
    console.log("New Connection: " + socket.id); 

    socket.on("disconnect", function() { 
     console.log("disconnect:" + socket.id); 
     myCsrfAjax("POST","/msgboard/removeid",function(data){ 
      console.log(data); 
     },{"id":sockst.id}); 
     // ** ← even I defined 'function myCsrfAjax' here 
    }); 
}); 

和错误发生,它说“myCsrfAjax”是不确定的,即使我在**定义“功能myCsrfAjax”,它会说“ XMLHttpRequest“未定义,我需要在myCsrfAjax中使用它。我该如何解决这个问题,请帮助我。

+2

的XMLHttpRequest未在规定的NodeJS环境 – Andrey

+0

好吧,我知道了。 –

回答

0
var myCsrfAjax = function(method, url, callback, jsonData) { 
    var ajax = new XMLHttpRequest(); 
    ... 
    ... 
} 

其分配给vario.on()范围之外,这样的行后:

var io = require('socket.io')(http);