Javascript Cleverbot API调用偶尔返回400。即使输入相同
我正在使用cleverbot.io API尝试通过将其结果包装到Yandex机器翻译API中来构建一个西班牙语机器人 Cleverbot的API经常返回400错误,但我无法找到原因。 是错误的屏幕截图 我的请求代码基于cleverbot.io上提供的代码示例:Javascript Cleverbot API调用偶尔返回400。即使输入相同,javascript,jquery,api,rest,web,Javascript,Jquery,Api,Rest,Web,我正在使用cleverbot.io API尝试通过将其结果包装到Yandex机器翻译API中来构建一个西班牙语机器人 Cleverbot的API经常返回400错误,但我无法找到原因。 是错误的屏幕截图 我的请求代码基于cleverbot.io上提供的代码示例: function submitMessage() { var start = new Date().getTime(); var x = $("#message").val(); // get user's message
function submitMessage() {
var start = new Date().getTime();
var x = $("#message").val(); // get user's message
input.push(x); // push to array of inputs
// append to HTML
var x2 = '<div class="panel"><h5>Username @ date/time</h5><p>' + x + '</p></div>';
console.log("input: " + x);
$(".messages").append(x2); // add new response
$(".mSent").html(input.length);
bot.ask(x, function (err, response) { // collect ouput
// CATCH 400 error and return message "I don't understand, please ask something else!"
var y = response;
console.log("output: " + y);
output.push(y); // store output in output array
var y2 = '<div class="panel callout"><h5>Juarez @ date/time</h5><p>' + y + '</p></div>';
$(".messages").append(y2); // add new response
$(".mRec").html(output.length);
var end = new Date().getTime();
var time = end - start;
totalTime += time;
avgTime = (totalTime / (input.length + output.length));
$(".mTime").html(avgTime.toFixed(1));
});
$("#message").val(''); // reset input form
}
函数submitMessage(){
var start=new Date().getTime();
var x=$(“#消息”).val();//获取用户的消息
push(x);//推送到输入数组
//附加到HTML
var x2='Username@date/time'+x+'';
控制台日志(“输入:+x”);
$(“.messages”).append(x2);//添加新响应
$(“.mSent”).html(input.length);
ask(x,函数(err,response){//collect输出
//捕获400错误并返回消息“我不明白,请询问其他问题!”
var y=响应;
控制台日志(“输出:+y”);
output.push(y);//将输出存储在输出数组中
变量y2='Juarez@date/time'+y+'';
$(“.messages”).append(y2);//添加新响应
$(“.mRec”).html(output.length);
var end=new Date().getTime();
var时间=结束-开始;
总时间+=时间;
avgTime=(totalTime/(input.length+output.length));
$(“.mTime”).html(avgTime.toFixed(1));
});
$(“#消息”).val(“”);//重置输入表单
}
根据我在这个网站和其他网站上的研究,我相信400错误描述了一个错误的请求,通常是因为错误的URL。但是,正如您在屏幕截图中所看到的,一些请求是相同的,一个将通过,而另一个不会
如果有人能给我提供一个简短的代码片段,描述用从web表单收集的输入调用此API的更好方法,我将不胜感激 你能在该错误中发布文本以及标题/响应吗?我不熟悉Cleverbot.io API,但他们可能会使用HTTP 400作为自定义错误代码,并且在响应正文中包含自定义代码。你检查过了吗?@Arcanecaraeda这是错误回复:谢谢,你能在网络标签上发布标题和回复吗?而且@NarbehMirzaei的假设可能是正确的。@Arcanecaraeda我将研究如何从网络选项卡获取标题和响应,我不认为这是一个选项。然而,在函数末尾添加几秒钟的超时似乎提高了它正常工作的频率。我想函数可能会在得到响应之前终止。这是400错误的合理原因吗?