在哪里定义xhr.send以便将用户数据POST到API



我的应用程序在reCaptcha验证中失败。剩下的唯一错误如屏幕截图1所示。

有人能帮我理解这是否只是没有定义xhr.send变量的问题吗?如果是这样的话,在哪里需要定义呢?对不起,我不是一个开发人员,只是想确定我的问题范围,继续研究。

屏幕截图1:我的Chrome网络开发工具的网络视角错误

屏幕截图2:我的angular.js文件中参考xhr.send 的特定错误

以下是我的captcha验证PHP文件的代码:

<?php
$postData = file_get_contents("php://input");
$request = json_decode($postData);
header('Access-Control-Allow-Origin: *');
echo json_encode(isValid($request->captchaResponse));
exit;
function isValid($response) {
try {
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = [
'secret' => 'mykeyishere',
'response' => $response
];
$options = [
'http' => [
'header'  => "Content-type: application/x-www-form-urlencodedrn",
'method'  => 'POST',
'content' => http_build_query($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return json_decode($result);
}
catch (Exception $e) {
return null;
}
}
?>

根据请求添加标头信息:标题屏幕截图

当我检查您的应用程序是否在Apache web服务器下工作时,它使用了基于Node.js的web服务器(可能是Express.js(,并且静态文件由Ecstatic静态文件服务器中间件提供(这就是它识别自己的方式:Node.js v8.15.0/ ecstatic server running @ li1252-85.members.linode.com:8080(。由于它是一个基于Node的web服务器,因此没有配置为正确处理PHP脚本,并且所有的PHP脚本都以纯文本形式返回。

这个405 HTTP错误的原因是由于这个基于节点的服务器的配置。对于Express.js,您可以定义要服务的请求方法和路由,其他方法将被响应为404(对于允许的请求方法(或405(对于不允许的请求方式(。

最新更新