我已经看过以前的答案,但我找不到任何东西。
我用这个来发送我的响应;
echo json_encode($response);
从检查结果我收到这一页的回应;
<br />
<font size='1'><table class='xdebug-error xe-warning' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: mail(): Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp64\www\ci7\php\MailSender.php on line <i>68</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0018</td><td bgcolor='#eeeeec' align='right'>377472</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp64\www\ci7\php\contact.php' bgcolor='#eeeeec'>...\contact.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0039</td><td bgcolor='#eeeeec' align='right'>400616</td><td bgcolor='#eeeeec'>Apolo\MailSender->send( )</td><td title='C:\wamp64\www\ci7\php\contact.php' bgcolor='#eeeeec'>...\contact.php<b>:</b>58</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0040</td><td bgcolor='#eeeeec' align='right'>401224</td><td bgcolor='#eeeeec'><a href='http://www.php.net/function.mail' target='_new'>mail</a>
( )</td><td title='C:\wamp64\www\ci7\php\MailSender.php' bgcolor='#eeeeec'>...\MailSender.php<b>:</b>68</td></tr>
</table></font>
{"status":"fail","errors":"Could not send a mail, sorry. Please try again."}
但是,我得到的错误,我不知道为什么?
这是JavaScript;
$.ajax({
url: config.url,
type: 'POST',
dataType: 'json',
data: $form.serialize(),
success: function(data){
if(data.status && data.status == 'fail') {
$.Apolo.modules.alertMessage({
target: $form,
type: 'error',
message: data.errors,
icon: 'warning'
});
$form.trigger('apolo.contactFormMessage');
config.onError.call($form, data);
}
else if(data.status && data.status == 'success') {
$.Apolo.modules.alertMessage({
target: $form,
type: 'success',
message: data.statusText,
icon: 'check'
});
$form.find('input, textarea').val('');
$form.trigger('apolo.contactFormMessage');
config.onSuccess.call($form, data);
}
},
error: function(jqXHR, textStatus, errorThrown){
$.Apolo.modules.alertMessage({
target: $form,
type: 'error',
message: errorThrown,
icon: 'warning'
});
$form.trigger('apolo.contactFormMessage');
config.onError.call($form, arguments);
}
});
3条答案
按热度按时间pokxtpni1#
事情是这样的
https://www.kevinleary.net/syntax-error-unexpected-token-json-position-0/
如果你看到一个SyntaxError:如果您的浏览器控制台在angular.js:13920或第13920行或angular.min.js的位置0处出现了意外的token < in JSON错误,那么很可能您正在使用HTTP API,可能使用了$resource或$http,并且其中一个API在响应正文中有错误通知或警告。
换句话说,你得到的“响应”是 NOT JSON。这是 HTML -一个HTML错误消息。最后是JSON字符串。
你做的是正确的--在XHR请求中同时有
success: function(data)
和error: function()
回调。您需要:
1.确保来自服务器的“错误”响应导致触发Javascript中的“错误”回调,和/或
1.检测服务器何时向任一回调发送非JSON响应。
fumotvh32#
好了,我已经解决了这个问题,在邮件函数中添加@,删除了x-debug错误,并给出了一个干净的响应,即。
vc9ivgsu3#
尝试解析对象响应:
在 AJAX 中
或在服务器中