我有一个Laravel应用,我的刀片视图在其中将JavaScript提取信息发布到控制器方法。我不明白为什么我的提取会在某些成功的帖子中捕获错误。我的提取是同步的。
我以前使用过Ajax并获得了相同的结果。
这里是代码。在我的刀片视图中,这是我的JavaScript代码
console.log(process.argv);
if (process.argv.length < 3) {
console.log("usage: node hd <filename>");
process.exit(1);
}
fs.open(process.argv[2], 'r', (err,fd) => {
if (err) {
console.log("Error: ", err);
process.exit(2);
} else {
fs.fstat(fd, (err,stats) => {
if (err) {
process.exit(4);
} else {
var size = stats.size;
console.log("size = " + size);
going = true;
var buffer = new Buffer(8192);
var offset = 0;
//while( going ){
while( going ){
console.log("Reading...");
fs.read(fd, buffer, 0, Math.min(size-offset, 8192), offset, (error_reading_file, bytesRead, buffer) => {
console.log("READ");
if (error_reading_file)
{
console.log(error_reading_file.message);
going = false;
}else{
offset += bytesRead;
for (a=0; a< bytesRead; a++) {
var z = buffer[a];
console.log(z);
}
if (offset >= size) {
going = false;
}
}
});
}
//}
fs.close(fd, (err) => {
if (err) {
console.log("Error closing file!");
process.exit(3);
}
});
}
});
}
});
这是我在控制器(PHP)上的代码:
<script type="text/javascript">
async function fetchPostCards(url, data_post){
return await fetch(url, {
method: 'POST', // or 'PUT'
body: JSON.stringify(data_post), // data can be `string` or {object}!
headers:{
'Content-Type': 'application/json'
}
})
.then(response => response.json());
}
function processCards(){
//this is called via button click
let arrCard = [
{card_number: "ABC001", email: "johndoe@somewhere.com"},
{card_number: "ABC002", email: "janedoe@somewhere.com"},
{card_number: "ABC003", email: "jimdoe@somewhere.com"},
{card_number: "ABC004", email: "jackdoe@somewhere.com"},
{card_number: "ABC005", email: "janetdoe@somewhere.com"},
];
let csrf_token = $( "input[name*='_token']" ).val();
arrCard.forEach(function(indCard){
let post_data = {};
post_data.card_number = indCard.card_number;
post_data.email = indCard.email;
data_post['_token'] = csrf_token;
var fetchPost = fetchPostCards('/processcards', data_post)
.then(data => {
console.log(JSON.stringify(data));
})
.catch(error => {
console.log("error " + error);
});
});
}
</script>
根据对“ ABC004”的请求,提取将捕获我所期望的错误。在结果=“ SUCCESS”上,提取将捕获错误。但是当我查看Laravel日志时,看到的是“成功”结果,没有错误。
我该如何解决?
答案 0 :(得分:0)
控制器中的处理中有一个var_dump()。我想,尽管它没有产生错误,但是却使返回目录变得混乱。
我已注释掉var_dump,并确保没有回显语句。
这解决了问题。我的提取现在可以获取成功结果。