JQuery ajax呼び出しからJSONを受信できません
質問
サーバーから取得した JSON は有効であると判断しましたが (ajax 呼び出しを手動で行っています)、実際には JQuery を使用したいと考えています。また、firebug を使用して、サーバーに送信される「ポスト」URL が正しいことも確認しました。ただし、エラー コールバックは依然としてトリガーされています (解析エラー)。データ型も試してみました:文章。
他に含めるべきオプションはありますか?
$(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
解決
試してみたいいくつかの提案を次に示します。
1)指定した「datatype」オプションは「dataType」である必要があります(大文字と小文字は区別されると思います)
2) 次のように「contentType」オプションを使用してみてください。
contentType: "application/json; charset=utf-8"
応答ではなく投稿 URL へのリクエストで使用されるため、これがどの程度役立つかはわかりません。詳細については、この記事を参照してください。 http://encosia.com/2008/06/05/3-missing-to-avoid-when-using-jquery-with-aspnet-ajax(asp.net 用に書かれていますが、適用できる可能性があります)
3) 投稿 URL の出力を三重チェックし、JSON バリデーターを介して出力を実行して、出力が有効であり、JSON オブジェクトに解析できることを確実に確認します。 http://www.jsonlint.com
これが少しでも役立つことを願っています!
他のヒント
なぜ myResult
の代わりに request
?
success: function(request) {
alert(myResult.length);
}
データパラメータが間違っています。以下に機能する例を示します。
データ:{ 索引:ddl.selectedIndex },
これにより、値 ddl.selectedIndex を持つ、index というプロパティを持つオブジェクトが構築されます。
データパラメータ行から引用符を削除する必要があります
幸運を祈ります