![](/img/trans.png)
[英]Send form data using JavaScript Fetch and POST and then process it in PHP
[英]Javascript: Post data to PHP with fetch
我正在使用 Ajax 通過 POST 方法向 PHP 提交數據。
我有兩個問題:
const reqData = 'id= + ' myobj.id + '&name=' + myobj.name'
請注意這個 ^ 數據是一個對象而不是表單數據。
我試過這樣做。 它返回 200 響應代碼。 但是php沒有保存數據。
async function updateCountry(url, data) {
const response = await fetch(url, {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: data,
});
return response;
}
updateCountry('some-url', data).then(resp => console.log(resp)).catch(err => console.log(err))
這是我的 Ajax 代碼:
const reqData = `id=${myobj.id}&name=${myobj.name}`;
$.ajax({
type: 'POST',
url: 'my-php-script-url',
data: reqData,
success: function (response) {
console.log(typeof response);
$('#saving-btn').hide();
if (response.includes('success')) {
$('#saved-btn').show();
setTimeout(() => {
$('#saved-btn').hide();
}, 3000);
} else {
$('#error-btn').show();
setTimeout(() => {
$('#error-btn').hide();
}, 3000);
}
},
error: function (err) {
console.log(err);
},
});
PHP 不自動支持 JSON 參數,它要求參數是 URL 編碼的或 FormData。
如果對象鍵與 post 參數相同,您可以編寫一個循環來創建 URL 編碼的字符串:
async function updateCountry(url, data) { const reqData = Object.entries(myobj).map(([key, value]) => key + '=' + encodeURIComponent(value)).join('&'); const response = await fetch(url, { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/x-www-form-urlencoded', }, body: reqData, }); return response; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.