我无法使用axios库从后端获取响应数据。
这是我的示例测试后端(story.php),有点类似于生产代码:
pip show <packagename>
我使用jQuery <?php
// Setting the response content type.
header( 'Content-Type: application/json; charset=utf-8' );
echo json_encode( $_POST );
,$.post
和axios
来测试每个库中是否都有正确的响应数据。但是似乎只有fetch
能够正确检索响应数据,但是我不明白为什么$.post
和axios
不能从响应中获取数据,尽管响应状态为{{ 1}}!
以下是使用不同库进行测试的代码:
fetch
因此只有jQuery ok
能够获取数据,但是$( document ).ready(function() {
$( 'form' ).on( 'submit', e => {
e.preventDefault()
let val = $( 'input.name' ).val()
// Sending request using jQuery post
$.post( "/story.php", { name: val, time: "2pm" }, function( data ) {
console.log( 'Ajax request' )
console.log( data )
});
// Sending request using axios
axios.post('/story.php', { name: val, time: "2pm" } )
.then(function (response) {
console.log( 'Axios request' )
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});
// Sending request using fetch
fetch('/story.php', {
method: 'POST',
data: { name: val, time: "2pm" }
} )
.then((response) => {
return response.json();
})
.then((jsonObject) => {
console.log( 'Fetch request' )
console.log(jsonObject)
})
.catch((error) => {
console.log( error )
});
} )
});
和$.post
返回一个空数组!为什么会这样?我想念什么吗?
**由于某种原因,我无法使用jQuery。
更新:找到了一个解决方案,如果我将帖子数据包装为查询字符串,那么它将起作用!但是我无法理解,想知道为什么PHP无法从axios或fetch获取数据?