2012-01-02 6 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

+0

@rejjいいえ、それはありません!私はそれも分かった。オリジナルのページは、同じドメインにない場合でも動作しません。これをどうやって解決するのですか?私はphonegapで働くためにこのコードが必要です。 – mugetsu

+0

これを行う唯一の方法はjsonpを使用することです。これはサーバー側から協力する必要があります。 – rejj

答えて

0

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

はまだ動作していません。私はちょうどエラーとして ""を得る – mugetsu

関連する問題