2012-01-02 49 views
0

我需要一些幫助,分析爲什麼下面的短jQuery代碼不起作用。 ajax調用基於RESTful API,並且我確認了這個確切的調用工作。所以沒有後端問題。我只關心這裏的前端,我缺乏經驗。我認爲以下應該是相當直接的,我不明白是什麼讓ajax出錯。有什麼公然錯誤的嗎? jquery ajax調用給出錯誤,與RESTful API

<head> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#submit").click(function() { 
       var data = {}; 
       data["login_name"] = $("#login_name")[0].value; 
       data["password"] = $("#password")[0].value; 

       $.ajax({ 
        type: "POST", 
        url: "https://website.com/a/login", 
        data: data, 
        dataType: "json" 
       }).success(function (data) { 
        $("#output")[0].value = JSON.stringify(data, null, "\t"); 
       }).error(function (a, b, c) { 
        $("#output")[0].value = alert(JSON.stringify(c, null, "\t")); 
       }); 
       $("#output")[0].value = "Sending..."; 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <span class="value"> 
     <input type="text" class="value" id="login_name" style="width:350px" /> 
    </span> 
    <span class="value"> 
     <input type="text" class="value" id="password" style="width:350px" /> 
    </span> 
    <span> 
     <input type="button" id="submit" value="Send Request" /> 
    </span> 
    <textarea id="output" readonly="readonly"></textarea> 
</body> 

我只能懷疑的東西是錯誤的數據。我通過修改一些現有的代碼創建的上述代碼:

var data = {}; 

    $("#fields div.entry").each(function(i,elem) { 

     elem = $(elem); 

     data[elem.find("input.field")[0].value]=elem.find("input.value")[0].value; 

    }); 

上述代碼是在其中創建的數據的原始工作的代碼,也看不出它是如何從我創建的數據陣列不同....

+1

是在同一個域中的頁面的API? – rejj 2012-01-02 21:35:09

+0

@rejj不,它不是!我也意識到了這一點。原始頁面不在同一個域上時不起作用。我該如何解決?我需要這個代碼在phonegap中工作。 – mugetsu 2012-01-02 21:38:22

+0

要做到這一點的唯一方法是使用jsonp,它需要服務器端 – rejj 2012-01-02 22:03:02

回答

0

作爲一個快速的猜測,你可以嘗試將內容類型添加到帖子中:

 $.ajax({ 
      type: 'POST', 
      contentType: 'application/json; charset=utf-8', 
      url: 'https://website.com/a/login', 
      data: data, 
      dataType: 'json' 
+0

nope的合作,仍然無法工作。我只是得到「」作爲錯誤 – mugetsu 2012-01-02 21:29:50