【发布时间】:2016-03-26 17:03:17
【问题描述】:
由于某种原因,当我运行 npm start 并点击浏览器时,我得到了带有此错误的堆栈跟踪。
TypeError: $.ajax 不是函数
at getLocationFromIp (G:\Github\Expressjs\nodetest1\routes\index.js:13:7)
at G:\Github\Expressjs\nodetest1\routes\index.js:24:14
谁能告诉我为什么?这是我的代码。谢谢!
var express = require('express');
var router = express.Router();
var externalip = require('external-ip');
var $ = require('jquery');
getLocationFromIp = function() {
$.ajax({
url:"freegeoip.net/json/",
type: "GET",
data: null,
dataType: "json",
success: function(){console.log("success!")}
});
}
router.get('/', function(req, res) {
var ip = getLocationFromIp();
res.render('index', { 'ip' : "hi"});
});
【问题讨论】:
-
尝试在 $(document).ready(function(){}) 函数中添加代码
-
@Dale — 什么
document? -
问题可能在于通过 require 函数异步加载 Jquery。有没有办法在 Jquery 脚本加载后触发 getLocationFromIp 函数?它可能会解决您的问题。
-
@Elvanos —
requireasync 是从什么时候开始的? -
嗯...有没有办法让 jquery 在需要加载后触发?如果这是问题
标签: javascript jquery ajax node.js