title: Why do I get "POST http://54.xx.xx.xx/wp-admin/admin-ajax.php 500 (Internal Server Error)" when using Wordpress+Ajax?
body: <p>It's the first time for me using ajax on WP. 
  I am working on a simple contact form, and for some reason whenever I click submit I get an error: </p>
  
  <p>on console: </p>
  
  <pre><code> POST http://54.xxx.xx.xx/wp-admin/admin-ajax.php 500 (Internal Server Error)jquery.js?ver=1.11.1:4 m.ajaxTransport.sendjquery.js?ver=1.11.1:4 m.extend.ajaxmain.js:66 (anonymous function)jquery.js?ver=1.11.1:3 m.event.dispatchjquery.js?ver=1.11.1:3 m.event.add.r.handle
  </code></pre>
  
  <p>on chromes "Networks": </p>
  
  <pre><code>Remote Address:54.xx.xx.xx:80
  Request URL:http://54.xx.xx.xx/wp-admin/admin-ajax.php
  Request Method:POST
  Status Code:500 Internal Server Error
  Request Headersview source
  Accept:*/*
  Accept-Encoding:gzip, deflate
  Accept-Language:en-US,en;q=0.8
  Connection:keep-alive
  Content-Length:73
  Content-Type:application/x-www-form-urlencoded; charset=UTF-8
  Cookie:wp-settings-1=editor%3Dtinymce%26posts_list_mode%3Dlist; wp-settings-time-1=1424359234
  Host:54.xx.xx.xx
  Origin:http://54.xxx.xx.xx
  Referer:http://54.xxx.xx.xx/?page_id=73
  User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
  X-Requested-With:XMLHttpRequest
  Form Dataview sourceview URL encoded
  action:submit_contact_form
  fullname:test
  email:test@gmail.com
  text:test
  Response Headersview source
  Access-Control-Allow-Credentials:true
  Access-Control-Allow-Origin:http://54.xxx.xx.xx
  Cache-Control:no-cache, must-revalidate, max-age=0
  Connection:close
  Content-Length:0
  Content-Type:text/html; charset=UTF-8
  Date:Thu, 26 Feb 2015 16:10:19 GMT
  Expires:Wed, 11 Jan 1984 05:00:00 GMT
  Pragma:no-cache
  Server:Apache/2.4.7 (Ubuntu)
  X-Content-Type-Options:nosniff
  X-Frame-Options:SAMEORIGIN
  X-Powered-By:PHP/5.5.9-1ubuntu4.5
  X-Robots-Tag:noindex
  </code></pre>
  
  <p>This is my ajax part: </p>
  
  <pre><code>//send info to php 
      $.ajax({
          beforeSend: function() {
              if ( IsEmail(email) == false) {
                  $('#aboutUnsuccess').show("slow");
                  $('.form_content').hide("slow");
              }
          },
          url: document.location.protocol+'//'+document.location.host+'/wp-admin/admin-ajax.php', 
          type: "POST", 
          /*action: 'submit_contact_form',*/
          data: ({ "action": "submit_contact_form", "fullname": fullname, "email": email, "text": text }), 
          success: function (results){
              if ( IsEmail(email) == true) {
                  //hide table
                  $('.form_content').hide('slow', function() {
                      $('.form_content').hide( "slow" );
                    });
                  //show textboxes
                  $('#aboutSuccess').show("slow");
                  $( "#aboutSuccess" ).append( "&lt;iframe id=\"pixel-thing\" src=\"http://54.xxx.xx.xx/wp-content/themes/twentyfifteen-child/thePixel.html\" width=\"1\" height=\"1\"  border=\"0\"&gt;&lt;/iframe&gt;" );
  
              }
          }
      }); 
  
  
  });
  </code></pre>
  
  <p>And this is my php fucntion: </p>
  
  <pre><code>// Contact form  Ajax 
  
  add_action('wp_ajax_nopriv_submit_contact_form', 'submit_contact_form'); 
  
  function submit_contact_form(){
  
      if(isset($_POST['email'])) {
  
          $email = $_POST['email'];       
          $email_to = "mail@main.com";
  
          $host = "ssl://smtp.gmail.com:465";
          $username = 'mainmain@mail.com';
          $password = 'pass';
  
          $email_subject = "You have a new email from $email via sdfsdfsd.com website";
          $message = $_POST['text']; 
  
          $headers = array ('From' =&gt; $email, 'To' =&gt; $email_to,'Subject' =&gt; $email_subject);
          $smtp = Mail::factory('smtp',
            array ('host' =&gt; $host,
              'auth' =&gt; true,
              'username' =&gt; $username,
              'password' =&gt; $password));
  
          $mail = $smtp-&gt;send($email_to, $headers, $message);
  
          if (PEAR::isError($mail)) {
            echo($mail-&gt;getMessage());
          } else {
            echo("Message successfully sent!\n");
          }
      }
  
  
  }
  </code></pre>
  
  <p>Whay might be the cause of the error? </p>