POST を使用してローカル API を呼び出す関数を作成しました。
function setOpenGraph(setValue) {
requestData = {
user : $.user._id,
opengraph : setValue
};
console.log(requestData);
$.ajax({
type: 'POST',
data: requestData,
dataType : 'json',
url: '/api:setopengraph',
success: function (data) {
$.user.opengraph = setValue;
console.log(data);
}
});
}
これは、ページ上のリンクのクリック イベントで呼び出されたときに機能します。ただし、alertify ポップアップへの応答として呼び出すと、API へのデータの POST に失敗します。
alertify.set({ labels: { ok: "ON", cancel: "OFF" } });
alertify.confirm( 'message here', function (e) {
if (e) {
$(".toggleopengraph").html('turn facebook sharing off');
setOpenGraph(true);
} else {
$(".toggleopengraph").html('turn facebook sharing on');
setOpenGraph(false);
}
});
**どちらの場合も console.log() は Object {user: "XXXXXXXXXXXXXX", opengraph: false} を返します **
次のコンソール出力では、最初のリクエスト (alertify によって開始された) がリダイレクトされ、API に POST されません。2 番目 (.click() によって開始) は、データを API にポストします。