これまで、このコードを使用して、エンコードエラーが発生するまで、カラーボックスウィンドウ内からデータを投稿していました。データは、「ΔΙΧΡΩΜΟ」ではなく「ΞΞΞ§Ξ'Ξ©ΞΞ」として送信されていました。
$("#productadd").submit(function(){
$.post(
$(this).attr('action'),
$(this).serialize(),
function(data){
alert('Product added to cart!');
$().colorbox.close();
}
);
いくつか検索した後、投稿時にエンコーディングを設定できるようにコードをこれに変更することにしましたが、それを完了するにはいくつかの助けが必要です:
$.ajax({
type: "POST",
url: $(this).attr('action'),
contentType: "application/json; charset=iso-8859-7",
dataType: "json",
data: "{id: '" + someId + "'}",
success: function(json) {
alert('Product added to cart!'),
$().colorbox.close(),
$("#success").html("json.length=" + json.length);
itemAddCallback(json);
},
error: function (xhr, textStatus, errorThrown) {
$("#error").html(xhr.responseText);
}
});
ただし、success:内の呼び出しはいずれも行われず、ページはフォームアクションでURLにリダイレクトされ、alertも$()。colorbox.close()も呼び出されませんが、前のコードでは送信されていました同じウィンドウで(アクションURLにリダイレクトせずに)アラートを表示し、最後にカラーボックスウィンドウを閉じます。助言がありますか?