私は次のコードを持っています:
<div id="parentDiv">
<a href="someurl"> ... </a>
</div>
div内のHTMLは外部ソースからのものであり、その構造がわからないため、制御できません。
このリンクがクリックされたら、いくつかのデータを投稿する必要があります。そこで、div要素にonclickイベントハンドラーを追加し、イベントが伝播することを期待して、jQueryajax関数を使用してデータを投稿しました。
これはSafariを除くすべてのブラウザで正常に機能しました。エラーは返されず、コールバック関数が呼び出されますが、何らかの理由でサーバーに到達しません。リクエストを受け取るたびにデータベースに書き込みます。ブラウザに投稿URLを手動でロードしようとしました-正常に動作し、dbにレコードが作成されます。FFとChromeも試してみました-期待どおりに動作します。
アラートをコールバック関数に入れると呼び出されますが、Safariではdata=nullです。
$('#parentDiv').delegate( 'a', 'click', function()
{
$.post('posturl',
{ param1: 'test'},
function(data)
{
alert('data = '+data);
},
"json"
);
});
この状況でAJAXが機能することを期待するのは正しいですか?そして、この問題に対するより良い解決策はありますか?
ありがとうございました!