将.post转换为等效的.ajax

Converting .POST into equivalent .AJAX

本文关键字:ajax post 转换      更新时间:2023-09-26

我需要改变我的一个。post javascript调用等效的。ajax调用,但我似乎不能使它工作。(我需要使它异步,并且帖子不允许这个额外的选项)。

原来的工作。post调用如下:

          $.post('includes/save_my_note.php', { pagenum: lastpage, userid: <?php echo $logged_user_id; ?>, subid: <?php echo $snipid; ?>, thenote: mynote, doctype: dtype, fileid: <?php echo $file_id; ?> });

它是javascript变量和插入的php变量的组合,但它在我的代码中完美地工作,调用函数并通过$_POST变量传递所有变量。

为了将其转换为完全等效的.ajax调用,我将其转换为以下内容:

        $.ajax({
            type: 'POST',
            url: "includes/save_my_note.php",
            data: "{ pagenum: " +lastpage+ ", userid: <?php echo $logged_user_id; ?>, subid: <?php echo $snipid; ?>, thenote: " +mynote+ ", doctype: " +dtype+ ", fileid: <?php echo $file_id; ?> }"
        });

从看。post和。ajax文档,我认为这些应该是相同的在他们的执行,但它不工作。

有人知道正确的语法把我的post调用变成ajax调用吗?我一定是错过了什么,除非幕后发生了比我知道的更多的事情。

"{ pagenum: " +lastpage+ ", userid: <?php echo $logged_user_id; ?>, subid: <?php echo $snipid; ?>, thenote: " +mynote+ ", doctype: " +dtype+ ", fileid: <?php echo $file_id; ?> }"

{ pagenum: lastpage, userid: <?php echo $logged_user_id; ?>, subid: <?php echo $snipid; ?>, thenote: mynote, doctype: dtype, fileid: <?php echo $file_id; ?> }

在这里是必不可少的。前者是字符串,后者是对象字面量。只有后者在这里起作用。如果你想使用字符串,你应该这样做

data: "pagenum=" + lastpage + "&userid= .....

$.post默认为异步。你是说你想让它同步吗?

在这种情况下,不要为$.ajax操心。就叫

$.ajaxSetup({async:false});

在呼叫.post()之前。但是要注意:同步请求经常会导致浏览器"锁定",这是非常丑陋的,并且会吓到用户。在异步请求上使用一个简单的加载指示器就能达到这个效果吗?