0

そのため、サービスを呼び出し、成功時に解析したいオブジェクトを返す ajax 投稿があります。

私はこれをvs2010で実行しています.ajaxポストコードをステップ実行したときにのみ機能し、一部の時間だけ機能します.

この呼び出しは基本的に私が行った他のページと同じなので、なぜこれが機能しないのか本当に困っています。

$.ajax({
                type: "POST",
                url: webMethod,
                data: parameters,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (obj) {
                    alert("Success");
                    parseStart(obj.d, id, idnum, parseType);
                },
                error: function (e) {
                    alert("Failure. :" + e);
                }
            });

それは本当に標準的ですが、なぜこれを行っているのかわかりません。誰かが以前にこのようなことを経験したことを願っています。私が言ったように、私がajaxコードをステップスルーしてから成功した場合にのみ通過します。一歩踏み出さないと、成功も失敗もしないような……不思議です。(そのため、ステップスルーしないとアラートなどが表示されません) サービスから返されたのはおそらくオブジェクトのサイズである可能性があるという提案があったので、それをトリミングしてゼロに近づけましたが、そうではありませんでしたどちらかを助けます。

これに関する任意の考えの指示は大歓迎です。私は現在困惑しています。

4

3 に答える 3

0

サーバーが 200 を返していない可能性があります。変更されていない 304 または一時的なリダイレクトを返している可能性があります。

.success() と .complete() の違いを参照してください。

.success() は、Web サーバーが 200 OK HTTP ヘッダーで応答した場合にのみ呼び出されます。基本的には、すべてが正常な場合です。

ただし、 ajax 呼び出しが成功したかどうかに関係なく、 .complete() は常に呼び出されます

于 2012-05-21T16:39:41.537 に答える
0

私はそれが何であるかを知っていると思います。ajax 呼び出しは非同期ですよね?そのため、返信までにお時間をいただく場合がございます。ただし、この呼び出しがリンクまたはフォーム ボタンを介して生成され、ここで false を返さない場合は、通常の get または post が発生します。$.ajax(); を呼び出した後に false を返すだけです。

$.ajax({
                type: "POST",
                url: webMethod,
                data: parameters,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (obj) {
                    alert("Success");
                    parseStart(obj.d, id, idnum, parseType);
                },
                error: function (e) {
                    alert("Failure. :" + e);
                }
            });
return false;
于 2012-05-21T16:40:12.197 に答える
0

わかりました、これに関する長い長いトラブルシューティングの後。これを行うと、ボタンの呼び出しをボディのオンロードとボタンのクリックに切り替えましたが、エラーは発生しませんでした。これは、投稿を壊すクリックでコールバックを生成していた asp ボタンを使用したことが原因でした。次に、asp ボタンを削除し、これらを入力ボタンに置​​き換えました。

于 2012-05-21T21:20:31.207 に答える