[英]Force “charset=x-user-defined'” on jQuery Ajax Post
[英]jquery $.ajax force POST
我有一個ajax函數,它創建一個觸發另一個ajax函數的鏈接。 出於某種原因,如果我設置了type: "POST"
則第二個ajax函數拒絕通過POST事件type: "POST"
這兩個功能如下:
function HandleActivateLink(source) {
var url = source.attr('href');
window.alert(url)
$.ajax({
type: "POST",
url: url,
success: function (server_response) {
window.alert("well done")
}
});
return false;
}
function HandleDeleteLink() {
$('a.delete-link').click(function () {
var url = $(this).attr('href');
var the_link = $(this)
$.ajax({
type: "POST", // GET or POST
url: url, // the file to call
success: function (server_response) {
if (server_response.object_deleted) {
FlashMessage('#form-success', 'Link Deleted <a class="activate-link" href="' + url.replace('delete', 'activate') + '">Undo</a>');
$('a.activate-link').click(function(){
HandleActivateLink($(this));
});
the_link.parent().hide();
} else {
var form_errors = server_response.errors;
alert(form_errors)
}
}
});
return false;
});
}
您會注意到HandleDeleteLink
成功創建了一個新鏈接,並為創建的鏈接生成一個新的單擊事件。 一切正常但HandleActivateLink
將請求作為GET
發送到服務器。 我嘗試過使用$.post
而沒有運氣。
任何指針,非常感謝。
在第二個事件中,您不會通知客戶端阻止默認行為。
一種方法是改變:
$('a.activate-link').click(function(){
HandleActivateLink($(this));
});
至:
$('a.activate-link').click(function(){
return HandleActivateLink($(this));
});
(這是有效的,因為HandleActiveLink
已經返回false。)
更好的方法是將事件參數傳遞給click函數並告訴它為preventDefault
$('a.activate-link').click(function(e){
e.preventDefault();
HandleActivateLink($(this));
});
你的網址是什么? 順便說一下你不能通過javascript發送跨域帖子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.