2012-12-22 50 views
0

我想用AJAX JSONP查詢從我在Cloudant上託管的CouchDB讀取文檔。Ajax查詢和Smarty錯誤

This是網頁。以下是相關的代碼部分。

<script type="text/javascript"> 
var url = "https://acharya.cloudant.com/toxtweet"; 
console.log(url); 
function getCloudantData(url) { 
     $.ajax({ 
      'url': url, 
      'dataType': 'jsonp' 
     }, 
     function (data) { 
      $('#importeddata').text(data); 
     }); 
} 
</script> 

但是,當我把這個腳本標籤放入該網頁時,我只是得到一個空白的網頁,我不知道爲什麼。我甚至沒有調用函數,JSLint說沒有語法錯誤。

模板HTML文件

{extends file='toxtweet.tpl'} 
{block name="head"} 
    <link href="./styles/poll.css" rel="stylesheet" type="text/css" media="Screen"> 
    <script type="text/javascript"> 
      var url = "https://acharya.cloudant.com/toxtweet"; 
      console.log(url); 
     $(function(){ 
      $.ajax({ 
      'url': 'https://acharya.cloudant.com/toxtweet', 
      'dataType': 'jsonp', 
      success:function (data) { 
      $('#ing').text(data); 
      }});}); 
    </script> 
{/block} 
{block name="body"} 
<h2> Do you think this tweet is discussing drugs? </h2> 
    <form class="poll" method="post" actions=""> 
    <p id="chosen-tweet"><p> 
    <ul> 
    {foreach $answers as $answer} 
     <li> 
      <label class="poll_active"> 
       <input type="radio" name={$answer} value="0">{[email protected]} 
      </label> 
     </li> 
    {/foreach} 
</ul> 
</form> 
<div id="ing"></div> 
{/block} 
{debug} 
+1

的https://acharya.cloudant/com/toxtweet給我一個超時 - 這就是給你一個空白頁。 – m02ph3u5

+0

有趣。當我從瀏覽器訪問「https://acharya.cloudant.com/」時,我得到了「{」couchdb「:」Welcome「,」version「:」1.0.2「,」cloudant_build「:」 850「}」 – mac389

+0

你的[proxy](http://tox.sinaiem.org/scripts/proxy.js)腳本應該使用[node.js](http://nodejs.org/), – extramaster

回答

3

沒有版本的$.ajax(),支持第二個參數作爲回調。(這種語法只是爲shorthand versions$.get()$.post()$.getJSON ...

另請注意,您正在使用jquery方法,並且如果您尚未在此片段之前加載jquery,它將停止javascript執行,如果$未定義。

使用

<script type="text/javascript"> 
function getCloudantData(url) { 
    $.ajax({ 
     'url': 'https://acharya.cloudant.com/toxtweet', 
     'dataType': 'jsonp', 
     success:function (data) { 
      $('#importeddata').text(data); 
     } 
    }); 
} 
</script> 
+0

和'$('#importeddata')。text(data); '當返回/請求的數據是json時沒有意義。我希望那只是爲了簡單起見。 – sakhunzai

+0

是的,那只是爲了測試目的而打印出來。當然,我們想要顯示來自JSON的幾個字段的處理版本。 – mac389