使用jQuery

时间:2015-06-28 16:38:41

标签: jquery api post cloudant

这对某些人来说可能非常基本(希望如此)但我已经注册了IBM bluemix并且我试图仅使用jQuery将文档发布到Cloudant数据库。该数据库称为historysites,文档具有名称,时代和访问的索引。它不适合我,我得到错误警报。任何有关初学者的CLoudant专家都会受到赞赏。

    <!DOCTYPE html>
     <html>
      <head>
      <meta charset="UTF-8">

      <link href="css/history.css" rel="stylesheet">

      </head>
     <body> 

      <div id="holder">

       <div id="heading"><h1 class="mainTitle">The Historical Site Exchange</h1>               </div>
<div class="form-holder">
<h4 class="form-heading">Enter Your Historical Site to Match the List</h4><br />
<div class="insert-holder">

        <form>
        <div class="inserts">Name: <input type="text" id="one" style="width:80%;" /></div>
        <div class="inserts">Era: <input type="text" id="two" style="width:80%;" /></div>
        <div class="inserts">Access: <input type="text" id="three" style="width:80%;" /></div>

        <div class="inserts"><button id="trialer">Add Site</button></div>

        </form>
    </div>

</div>
</div>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function(){
    var one=$('#one').val();
    var two=$('#two').val();
    var three=$('#three').val();

    $("#trialer").on('click', function(){
        var requester={ name:one, era:two, access:three}
        $.ajax({
            type: 'POST',
            url: "https://fba531c7-0a0e-437e-b1e3-962c3968f18e-bluemix:846d41093464a968dd6b12310cb78e2651cbf91bfd069c69d0e1b18447311213@fba531c7-0a0e-437e-b1e3-962c3968f18e-bluemix.cloudant.com/historysites",
            data: requester,
            success: function(ok){
                alert('uploaded');
            },
            error: function(nope){
                alert('afraid not');
            }

    });




    });
});


</script>


    </body>
</html>

2 个答案:

答案 0 :(得分:0)

您不应直接从客户端JavaScript代码与数据库通信。任何人都可以通过查看浏览器中的源来查看您的数据库凭据。

此外,您没有告诉我们您遇到了什么错误,但浏览器可能会限制跨域xhr调用(安全限制)。在浏览器中打开开发人员控制台,然后查看控制台选项卡。浏览器默认情况下不允许JavaScript发布到另一个域,除非您调用的URL实现了CORS并且白色列出了您的域。

您可以从服务器端代码调用数据库,如php,node,servlet等

答案 1 :(得分:0)

确保您在服务器端连接到Cloudant数据库。连接数据库的方法很少。 一种方法是使用以下代码连接到您的cloudant数据库。确保将此代码写入包含路由的文件中,或者将其放在单独的文件中并将db导出到路径文件中:

var cloudant  = require('cloudant')("MYUSERNAME:MYPASSWORD@MYACCOUNT.cloudant.com");
console.log("logged into cloudant");

db = cloudant.db.use("Name_of_database");

现在,您可以使用db.insert,db.destroy等访问数据库中的文档。

另一种方法是使用所有数据库访问信息创建和对象,然后使用它发送请求。

  var options = {
    hostname: "ACCOUNT.cloudant.com",
    path: "/DB_NAME/DOCUMENT_ID",
    method: 'GET',
    auth: "USERNAME" +":" + "PASSWORD"
  }

 request.get(options, function(err,body) {...});

您要在“选项”中添加的变量会根据您的请求而有所不同。例如,您可能想要或不想添加标题,您可能需要删除文档ID等。请查看github.com/request/request上的文档,或者如果您对此有任何疑问,请在此处与我联系。方法。祝你好运。