2015-04-22 12 views
1

MongoDB沒有內置的RESTFul接口,所以我試圖將MongoDB查詢結果轉換爲字符串格式並使用Ajax發送它,但它給了我一個錯誤在Java EE中傳遞使用Ajax的JSON字符串

ServletDemo.java:com.mongodb.servlets

public void doPost(...){ 
    returnString(); 
} 
public String returnString(){ 
    MongoClient mongoClient = new MongoClient(new MongoClientURI("mongodb://localhost:27017")); 
    DB database = mongoClient.getDB("db"); 
    DBCollection collection = database.getCollection("coll"); 
    DBObject getDocs = new BasicDBObject(); 
    DBCursor cursor = collection.find(getDocs); 
    while(cursor.hasNext()){ 
     returnString += String.format("%s",cursor.next()); 
    } 
    return returnString; 
} 

的index.html

<body> 
    <button>Click Me</button> 
    <p></p> 
    <script> 
     $(document).ready(function(){ 
      $("button").on("click",function(){ 
       $.ajax({ 
        url:'ServletDemo', 
        type:'post', 
        success:function(data) { 
         alert("Success"); 
         $('p').html(data); 
        }, 
        error:function(msg){ 
         alert("Error"); 
         console.log(msg); 
        } 
       }); 
      }); 
     }); 
    </script> 
</body> 
+2

你得到什麼錯誤? – MCHAppy

+0

控制檯中的錯誤狀態405提示錯誤 –

回答

0

變化ServletDemo.java

使用response.getWriter()將數據傳遞給Ajax調用

public void doPost(...){ 
    MongoClient mongoClient = new MongoClient(new MongoClientURI("mongodb://localhost:27017")); 
    DB database = mongoClient.getDB("db"); 
    DBCollection collection = database.getCollection("coll"); 
    DBObject getDocs = new BasicDBObject(); 
    DBCursor cursor = collection.find(getDocs); 
    while(cursor.hasNext()){ 
     returnString += String.format("%s",cursor.next()); 
    } 
    response.getWriter().write(returnString); 
} 

現在工作順利......