Ajax在成功后继续加载

时间:2018-02-01 01:16:12

标签: javascript php jquery ajax wordpress

我正在尝试构建一个通过" post"发送数据的代码。使用此代码将它们添加到Woocommerce的采购订单数据中..



		jQuery('.single_add_to_cart_button').click(function(){
			jQuery.ajax({
				data: sendJsonA, //This is the info to send
				url:ajaxurl,
				type:'POST',
				dataType:'json',
				beforeSend: function(){
					console.log('Sending')//Muestra el objeto enviado
				},
				success: function(response){
					console.log('Success ) //Muestra e
				}
			})
			.done(function( data, textStatus, jqXHR ) {
				if ( console && console.log ) {
						console.log( "La solicitud se ha completado correctamente.");
				return
			})
			.fail(function( jqXHR, textStatus, errorThrown ) {
				if ( console && console.log ) {
					console.log( "La solicitud a fallado 2: " +  textStatus+"----------------");
				return
			}); 
			return       	
		})




这会收到数据



	add_action('wp_ajax_ele_inSelectionGrid', 'ele_inSelectionGrid');
	function ele_inSelectionGrid()
	{
		session_start();
		$customData                 =$_POST['data'];

		$_SESSION['data']     =$customData;

		unset($_POST['data']);
		die();
		return;
	};	




这部分代码运行良好,但每次执行成功消息时,页面都会被加载,并且不会前进到购物车页面,直到chrome按钮被指定为"中断加载此页面" ;并再次点击购买并转到购物车页面,信息发送正确..我是新编程所以我感谢任何其他评论,非常感谢

我当时认为问题与点击购买按钮的事件有关,因为我的ajax脚本是通过点击该按钮执行的,除了同一按钮的购买事件之外,还会生成两个http请求同时点击相同的事件,但我不知道如何让我的脚本在ajax完成数据发送后继续正常加载页面

1 个答案:

答案 0 :(得分:0)

不是使用donefail方法,而是在每次请求后使用completederror ajax闭包。

jQuery.ajax({
            data: sendJsonA, //This is the info to send
            url:ajaxurl,
            type:'POST',
            dataType:'json',
            beforeSend: function(){
                console.log('Sending')//Muestra el objeto enviado
            },
            success: function(response){
                console.log('Success') //Muestra e
            },
            completed:function (data, textStatus){
                if ( console && console.log ) {
                console.log( "La solicitud se ha completado correctamente.");
               }
            },
            error:function (){
                console.log('Could not connect');
            }
        })