2008-09-17 18 views
10

サーバーからのJSONが有効であることを確認しましたが(手動でajax呼び出しを行う)、実際にJQueryを使用したいと考えています。私はまた、サーバーに送信されている "post" URLが、firebugを使って正しいことを確認しました。ただし、エラーコールバックは引き続き発生しています(parsererror)。私もデータ型:テキストを試しました。JQueryのAjaxコールからJSONを受け取ることができません

他にも含めるべきオプションがありますか?ここで

$(function() { 
    $("#submit").bind("click", function() { 
     $.ajax({ 
      type: "post", 
      url: "http://myServer/cgi-bin/broker" , 
      datatype: "json", 
      data: {'start' : start,'end' : end}, 
      error: function(request,error){ 
       alert(error); 
      }, 
      success: function(request) { 
       alert(request.length); 
      } 
     }); // End ajax 
    }); // End bind 
}); // End eventlistener 

答えて

19

は私がしようとするだろういくつかの提案です:

1)あなたが指定した 'データ型' オプションは、 'dataTypeと'(大文字と小文字を区別し、私は信じている)

2でなければなりません)を使用してみてくださいように「contentTypeの」オプション:

contentType: "application/json; charset=utf-8" 

私はそれはあなたのポストのURLへのリクエストではなく、応答に使われているよう助けることどのくらいか分かりません。 詳細はこちらの記事を参照してください。http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax (それはasp.netのために書かれていますが、適用してもよい)

3)トリプルだけで絶対に確認するためにあなたのポストのURLの出力をチェックし、JSONバリデータを介して出力を実行します有効で、JSONオブジェクトとして解析できます。 http://www.jsonlint.com

これはいくつか役立ちます。

+0

お返事をいただきありがとうございます。データ型として持っていたのはdataTypeオプションだった –

+7

ちょうどメモ、 "json"にdataTypeを設定すると自動的にcontentTypeが "application/json"に設定されます。 – bhollis

+0

@BHR +1は文書に従って正しい。私はjquery 1.6.4 atmで作業しており、contentTypeを明示的に設定する必要があることが分かりました。 "application/json; charset = utf-8" – zack

0

データパラメータが間違っています。

データ:{インデックス:ddl.selectedIndex}をここに動作例であり、

これは値ddl.selectedIndexとインデックスというプロパティを有するオブジェクトをコンストラクト。

あなたのデータパラメータラインからではなくrequest

幸運

+0

-1、これは完全に有効な構文で、 stringをプロパティ名として使用します。たとえば、javascriptで有効な識別子の名前ではないプロパティ名がある場合など、それは必須です。引用すれば、値を与えることができます。 1つの一般的な例は '' class "'です。これは予約語であるため引用符を付ける必要があります。 JSON構文では、すべてのプロパティ名を二重引用符で囲む必要があります。 – DarthJDG

1

なぜmyResultを引用符を削除する必要がありますか?

success: function(request) { 
       alert(myResult.length); 
      } 
+0

私は完全なコードで私はmyResultへのリクエストを操作していたと確信しています....しかし、もっと明確になるように変更しました...問題はdataTypeが 'datatype'と綴られていたことでした。コメントありがとう –

関連する問題