2017-06-17 85 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);