无法使用ajax get请求获取数据

时间:2014-02-18 22:20:46

标签: javascript jquery ajax mongodb

我已经设置了一个mongo数据库。现在我的数据库中只有一个id。我正在尝试使用ajax get请求获取我的javascript文件中的数据(使用ImpactJS引擎)。

以下是我的数据库现在的样子。它在mongo db上。非常基本的测试目的

{
  "_id": "5303a4d4c4fd447a0a7fb528",
  "__v": 0,
  "ans": "ans",
  "hint": "Hints.",
  "score": 20,
  "name": "ABC",
  "pid": 1
}

然后我在我的javascript文件中使用Ajax请求从数据库中获取“ans”字段。以下是我的相同代码

getQuestionAnswer:function(){
             var requestURL = "http://128.2.238.182:3000/problem?pid=".concat(this.passedQsId);
             var answer;
             $.ajax({
                 type:'GET',
                 url: requestURL,
                 async: false,
                 dataType: 'json',
                 cache: false,
                 success: function(data) {
                     answer = data.ans;
                 },
                 error: function(data) {
                     answer = "<p>ERROR</p>";
                 }
             })
             return answer;
    },

URL正确传递,我在我的日志上仔细检查了它。但是,当我尝试在我的其他函数中使用此请求函数时,我得到infinte数量的错误,说“NS ERROR FAILURE”或其他东西。下面是我收到错误消息的代码行

 checkAnswer: function(id){
         var correctAnswer = this.getQuestionAnswer();
  }

任何帮助将不胜感激。我对javascript和网络编程一般都是新手。这对我来说是一个挑战,因为我主要用Java,C ++编写代码!

1 个答案:

答案 0 :(得分:1)

为评论获得一点点大小 - 这里有一些要在函数中排序的东西

getQuestionAnswer:function(){
             var requestURL = "http://128.2.238.182:3000/problem?pid=".concat(this.passedQsId);
             var answer;
             $.ajax({
                 type:'GET',
                 url: requestURL,
                 dataType: 'jsonp', /* different domains often require jsonp */
                 cache: false,
                 success: function(data) {
                     console.log(data); /* check */
                     answer = data.ans;
                     return answer; /* needs to be here */
                 },
                 error: function(xhr, status, error) {
                     console.log(xhr);
                     answer = "<p>ERROR</p>";
                     return answer; /* needs to be here *
                 }
             }); 
                 /* ^ semi colon ending here */

             /* return answer; */ 
            /* removed - will not return the 'answer' 
            as the function is now Asynchronous */

    },

更新以示例查看更广泛的功能和示例callback

var answerfunctions = { 
    getQuestionAnswer : function(callback){ /* here accepts the callback function */
             var requestURL = "http://128.,,etc";
             var answer;
             $.ajax({
                 type:'GET',
                 url: requestURL,
                 dataType: 'jsonp',
                 cache: false,
                 success: function(data) {
                     callback(data.ans);
                 },
                 error: function(xhr, status, error) {
                     console.log(xhr);
                     callback("ERROR");
                 }
             }); 
    }

 };

/* call the function and pass a function as an argument to callback to */
answerfunctions.getQuestionAnswer(function(datareturn) { alert(datareturn); });
相关问题