为什么我得到" POST HTTP://54.xx.xx.xx/wp-admin/admin-ajax.php 500(内部服务器错误)"使用Word preSS + Ajax时? [英] Why do I get "POST http://54.xx.xx.xx/wp-admin/admin-ajax.php 500 (Internal Server Error)" when using Wordpress+Ajax?
问题描述
这是第一次使用了WP AJAX我。 我正在一个简单的接触形式,出于某种原因,每当我点击提交我得到一个错误:
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:
在控制台上:
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
这是铬合金网络:
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
这是我的ajax部分:
This is my ajax part:
//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( "<iframe id=\"pixel-thing\" src=\"http://54.xxx.xx.xx/wp-content/themes/twentyfifteen-child/thePixel.html\" width=\"1\" height=\"1\" border=\"0\"></iframe>" );
}
}
});
});
这是我的PHP温控功能:
And this is my php fucntion:
// 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 asdasd.com website";
$message = $_POST['text'];
$headers = array ('From' => $email, 'To' => $email_to,'Subject' => $email_subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($email_to, $headers, $message);
if (PEAR::isError($mail)) {
echo($mail->getMessage());
} else {
echo("Message successfully sent!\n");
}
}
}
Whay可能是错误的原因是什么?
Whay might be the cause of the error?
我试过的var_dump()在PHP functions.php文件中的变量,它们都显示效果细腻。
I tried var_dump() the variables in the php functions.php file, They all display fine.
当我加入 require_onceMail.php;
在我的PHP文件的顶部,页面只是停止加载。我不知道这就是问题所在。所以我想没有它(?)
when I add require_once "Mail.php";
on the top of my php file, pages just stop loading. I'm not sure this is the problem. So I'm trying without it (?)
推荐答案
错误500是投掷,因为您的服务器没有响应您的来电。
The error 500 is throwing because your server is not responding to your call.
您是否在PHP文件开始尝试用。
Did you tried with at start of the php file.
error_reporting(E_ALL);
ini_set("display_errors", 1);
使用萤火所以会后你调用服务器响应,所以你可以看到错误。
Use firebug so it will post you the call to server and response so you could see the error.
如果你看到一个空白页,那么你在你的PHP文件中错过了一个语法的地方。看看到你的括号,冒号和分号
If you are seeing a blank page,then you missed a syntax somewhere in your PHP file. Have a look into your brackets, colons and semi-colons
这篇关于为什么我得到&QUOT; POST HTTP://54.xx.xx.xx/wp-admin/admin-ajax.php 500(内部服务器错误)&QUOT;使用Word preSS + Ajax时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!