私の Web サイトは ajax の投稿を Web サービスに送信しています。Web サービスはその代わりに json を返し、その json は成功のコールバックでさらに使用されます。
ここに私の問題があります。私の Web サイトが複数の ajax 投稿を送信している場合、Web サービスが返した json がごちゃごちゃになっているようです。
ajax 投稿または Web サービス (REST) のいずれかを同期することを考えていますか? REST サービスを同期する必要はないと読みましたが、本当ですか? 同期が解決策である場合、どこで同期すればよいですか? ajax で async: false は投稿を同期しますか?
ありがとう。
いくつかのコードを含めることを考えました:
ウェブサービス:
@POST
@Override
@Produces("application/json")
@Consumes("application/json")
public Customer create(Customer cust){
custManager.save(cust);
return custManager.getCust(custManager.getCount());
}
AJAX:
$.ajax({
url: custURL,
type: 'POST',
data: JSON.stringify(sdata),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function(json){
var cust = JSON.parse(JSON.stringify(json));
var newId = cust.id;
updateCustId(oldId, newId);
}
});
それが行うことは、顧客のデータをWebサービスに投稿し、WebサービスがIDを指定し、それをクライアントに返して顧客IDを更新することです。それだけではありません。古い顧客 ID を参照する他のテーブルも、サーバーから生成された新しいものに更新しています。これらの他のテーブルを更新した後、Web サービスにも送信されます。私が話しているテーブルは web sql であり、そのクエリも非同期で動作します。そのため、ID がごちゃ混ぜになり、他のテーブルが Web サービスに送信されることがありますが、それが使用する customerid は古いもののままです (コールバックを使用して、送信する前に最初に更新する必要があることを確認しました)。サーバーに)。
私のajax呼び出しを async: false にして、それらを同期させ、ごちゃ混ぜにならないようにします。