2015-02-18 51 views
1

阿賈克斯jQuery的引用在Visual Studio的Web API的一個項目,我想打電話給POST方法與jQuery添加在網頁API

我的模型是

public class Book 
    { 
     [BsonId] 
     public int Id { get; set; } 
     public string Title { get; set; } 
    } 

Post方法

public void Post(List<Book> books) 
     { 
      var client = new MongoClient("mongodb://localhost:27017"); 
      var server = client.GetServer(); 
      var db = server.GetDatabase("BookStore"); 
      foreach (var book in books) 
      { 
       var collection = db.GetCollection<Book>("BookCollection"); 
       collection.Save(book); 
      } 
     } 

我的腳本

<script> 
    var books = [ 
       { "Id": 1, "Title": "My Book 1"}, 
       { "Id": 2, "Title": "My Book 2" }, 
       { "Id": 3, "Title": "My Book 3" }, 
       { "Id": 4, "Title": "My Book 4" }, 
       { "Id": 5, "Title": "My Book 5" }, 
       { "Id": 6, "Title": "My Book 6" } 
    ];  var postString = JSON.stringify(books); 

    jQuery.ajax({ 
     type: "POST", 
     datatype: "json", 
     contentType: 'application/json', 
     url: "http://localhost:10746/api/values", 
     data: postString, 
     success: function() { 
      alert(postString); 
     } 
    }); 

</script> 

它沒有工作。我是否缺少任何參考?

+0

你的模型被定義爲'Id' - 你的JS列表定義了'ID'。另外,在發佈之前不需要將數據串聯起來 - 它應該映射回來。你能定義「沒有工作」嗎? (控制檯中的錯誤?請求的狀態是什麼?) – tymeJV 2015-02-18 01:14:52

+0

它應該在MongoDB中創建一個數據庫。 @tymeJV – Tanvir 2015-02-18 01:21:41

+0

而且這個ajax調用沒有調用Post方法 – Tanvir 2015-02-18 01:23:24

回答

0

你有沒有嘗試縮短你的網址到相對路徑?

你可能會因此而犯規。

http://en.wikipedia.org/wiki/Same-origin_policy

如果在你的港口任何區別它可以被看作是大部分服務器會阻止默認跨域請求。