2012-01-20 14 views
6

のJSONPを返します。 jsonの代わりにjsonpリクエストを行い(スニッフィングして、?callback=jQueryxxxxxxxxxで渡されたURLを呼び出したことがわかりました)、jqueryは名前をコールバックで渡す匿名関数にパックするので、成功関数は呼び出されません引数であり、サーバは標準jsonを返します(私はPOSTリクエストであり、クロスドメインリクエストではないのでjsonpを使いたくありません)。私は、現在のビューのURLとこのuのajax url引数がhttp://localhost:8080/myapp/areax/...にあるので、なぜjQueryがJSONPリクエストを行うのか分かりません。jQuery.ajaxは、私はこのような単純なAJAX呼び出しを持っている代わりに、JSON

EDIT:これは動作しませんどの

表示URL要求がなされている。このようなものです: http://hostname:8080/AreaName/Report/ViewReport とAjaxのuパラメータが/AREANAME/MyAutoComplete /検索のようなものですので、完全なURL

[{"Id":2,"Text":"001"},{"Id":7,"Text":"002"}] 
01: http://hostname:8080/AreaName/MyAutoComplete/Search?callback=jQuery151013129048690121925_1327065146844

サーバーの応答は次のようになりますように作られているオートコンプリートにあります

私はそれが

<script> 
jQuery151013129048690121925_1327065146844([{"Id":2,"Text":"001"},{"Id":7,"Text":"002"}]); 
</script> 

である必要があり、そのために、それは、JSONPではありません知っているしかし、私はJSONP、通常のJSON要求をないようにしたいです。すべての

UPDATE

奇妙な事は(私はそれがプロジェクトで使用されているjQueryのV1.5.1のバグだと思うし始めている)私はdataType: "json"を削除すると、それは通常のJSON要求を行うということです代わりにJSONリクエストを作成する方法の:)

だから、今、私はこれが期待どおりに動作する理由を説明受け付けます(とデータ型を持つものを「JSON」しません):から

$.ajax({ 
     url: u, type: "POST", 
     data: data, 
     success: function (d) { response($.map(d, function (o) { return { label: o.Text, value: o.Text, id: o.Id} })); } 
}); 
+0

との互換性がない可能性があります、他のjQueryプラグインを持っている場合は、チェックあなたはどのパラメータを含む完全なURLを表示していただけますか? – nnnnnn

+0

'u'があなたの現在のドメインに相対的な場合に試してみることができます。たとえば、/ myapp/areax/... – RvdK

+0

はクロスドメインリクエストですか?同じホストでもポートは異なる可能性がありますか?それは奇妙な男です... –

答えて

2

ここのバグ:http://bugs.jquery.com/ticket/8118

あなたはおそらくjquery-validationプラグインを使用しています。 Jquery-validationプラグインはjQuery 1.5と互換性がありません。この矛盾によって、ここで問題が発生しています。

問題が原因jqueryの検証プラグインに特異的でない場合は、jQueryの1.5

+0

はい、これは私が遭遇した正確な問題です。私が疑ったように、それはjQueryのバグでした:)ありがとう! –

関連する問題