简体   繁体   中英

TypeError: $.ajax is not a function while running a ajax request

Instead of curl, I'm using jsonp format to extract data from the api. Here I'm using wit.ai api for sample reference. I have made a request using the following format.

Sample Curl to get this

$ curl \
      -H 'Authorization: Bearer $TOKEN' \
      'https://api.wit.ai/message?v=20160526&q=hello'

And now my code

var $ = require('jquery');

$.ajax({
  url: 'https://api.wit.ai/message',
  data: {
    'q': 'set an alarm in 10min',
    'access_token' : 'MY_WIT_TOKEN'
  },
  dataType: 'jsonp',
  method: 'GET',
  success: function(response) {
      console.log("success!", response);
  }
});

And then I executed node app.js in the terminal which gave the following error.

c:\app.js:3
$.ajax({
  ^

TypeError: $.ajax is not a function
    at Object.<anonymous> (c:\app.js:3:3)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:968:3

Why I'm getting the error? Is there any other way to run ajax using the terminal?

If you are using Jquery on the client side, include this in the <head> tag of your template:

<script src="jquery-3.1.1.min.js"></script>

If you are using jquery on the server side, install jquery using npm, and use this:

require("jsdom").env("", function(err, window) {
    if (err) {
        console.error(err);
        return;
    }

    var $ = require("jquery")(window);
});

Personally I will not prefer using jquery on the client side.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM