AJAX post returning 500 Internal Server Error on Live Server

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • amskape
    New Member
    • Apr 2010
    • 56

    AJAX post returning 500 Internal Server Error on Live Server

    I created a script where a user can select from a variety of
    shipping options for an order from within a jQuery dialog box. The
    shipping rates are delivered via UPS & FedEx. Oddly enough, the
    script works fine on my development machine, but on the live server,
    Firebug returns a "500 Internal Server Error"

    Here is what my jQuery looks like:
    Code:
    jQuery("#select-shipping").click(function(){
    // Open the dialog, start with the "loading page"
    		
    
    $("#shipping-select").load('func/shipping_load.php').dialog({
    			bgiframe: true,
    			autoOpen: true,
    			position: 'center',
    			title: 'Select Shipping Method',
    			width: 400,
    			height: 400,
    			modal: true,
    			buttons: {
    				'Apply Shipping': function() {
    					var bValid = true;
    					
    					if (bValid) {
    						var fship	=	
    
    $('input[name=shipping]:checked').val();
    						var arr = 
    
    fship.split('-');
    						var shipPrice 	=	
    
    arr[1];
    						var shipMeth 	=	
    
    arr[0];
    						
    						var subOrder 	=	
    
    $("#d_total").val();
    						if 
    
    ($('#customer-discount').val() != 'false') {
    							var minDis = 
    
    subOrder * ("."+$("#customer-discount").val());
    							var nTotal = 
    
    subOrder - minDis;
    					
    							var orderTotal 
    
    = nTotal + parseFloat(shipPrice) + parseFloat($("#tax").val());  /* 
    
    Order Total minus customer discount */
    							
    							
    
    $("#order_discount_amount").val("-"+minDis.toFixed(2));
    						}
    						else {
    							var orderTotal 
    
    = parseFloat(subOrder) + parseFloat(shipPrice) + 
    
    parseFloat($("#tax").val());	/* Order Total, No Discount */
    						}
    						
    
    $("#order_total").val(orderTotal.toFixed(2)),
    						
    
    $("#shipcost").val(parseFloat(shipPrice)),
    						
    
    $("#shipping_method").html(shipMeth);
    						
    						
    
    $(this).dialog("destroy");
    					}
    				},
    				'Close Window': function() {
    					$(this).dialog("destroy");
    					
    				}
    			},
    			close: function() {
    				$(this).dialog("destroy");
    			}
    		});
    		
    		// This portion actually runs the PHP code to get the 
    
    rate results from UPS & FedEx
    		$.ajax({
       			type: "POST",
       			url: "func/shipping_selection.php",
    			data: "shipid=" + $("#customer-ship-id").val() 
    
    + "&cartid=" + $("#cart_id").val(),
    			success: function(html){
    				$('#sLoader').fadeOut("fast");
    				$("#sLookup").html(html);
    			}
     		});
    		
    	});
    The dialog opens a loader page (with gif) and that portion works fine.
    Once the AJAX post is complete (shipping_selec tion.php), it is
    supposed to update the "sLookup" div with the HTML from the
    shipping_select ion.php page. Like I said, it works perfectly on my
    testing server, but fails on the live server. Both are running PHP

    5.2xxxx.

    Also, notice in the attached images that the 'shipping_selec tion.php'
    is actually working...rate results are returned from both UPS and
    FedEx, however something is failing on the AJAX success function.
    Attached Files
    Last edited by Niheel; Jul 25 '10, 05:10 AM. Reason: please use code tags and don't use bold on your whole question
  • dgreenhouse
    Recognized Expert Contributor
    • May 2008
    • 250

    #2
    If you're getting a 5xx error, then, something's going wrong in the script. Bracket (comment out) code segments and selectively enable various sections until you locate the error. Create a test page that just displays the returned results in a div.

    Comment

    • perhapscwk
      New Member
      • Sep 2007
      • 123

      #3
      all post variable with some special character in script need to replaced by xxx

      Code:
      url = url.replace(/#/g, '%23').replace(/"/g, '%27').replace(/!/g, '%21').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/\+/g, '%2B').replace(/~/g, '%7E');

      Comment

      Working...