Return 使用 Alpine.js 和新的 FormData() 提交了 POST 数据
Return submitted POST data with Alpine.js and new FormData()
我正在尝试 POST 一些表单数据,使用 Alpine.js,到当前页面,然后 PHP $_GET 将使用这些数据到 运行 一些功能。
它似乎是 return 响应中的整个页面,而不是表单数据(然后由于无效 JSON 而出错)。
如何在响应中只return提交的表单数据?
<form
method="post"
action="./"
class="form__press"
x-on:submit.prevent="
let formData = new FormData();
formData.append('username', 'Chris');
fetch('./', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
})
.then((response) => response.json())
.then((result) => {
console.log('Success:', result);
})
.catch((error) => {
console.error('Error:', error);
});"
>
<div class="field mb:15@xs">
<label for="pressEmail">Email</label>
<input type="email" name="pressEmail" autocomplete="off" required />
</div>
<div class="field mb:15@xs">
<label for="pressPassword">Password</label>
<input type="password" name="pressPassword" autocomplete="new-password" required />
</div>
<button type="submit" name="submit">Submit</button>
</form>
所以对此的正确答案是您需要 PHP 后端函数 return JSON 具有正确的内容类型 ("application/json")。
但是你也可以实现这个客户端,因为你已经得到了你想要的所有数据returned。
<form
method="post"
action="./"
class="form__press"
x-on:submit.prevent="
let formData = new FormData();
formData.append('username', 'Chris');
fetch('./', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
})
.then(() => JSON.parse(JSON.stringify(formData)))
.then((result) => {
console.log('Success:', result);
})
.catch((error) => {
console.error('Error:', error);
});"
>
我正在尝试 POST 一些表单数据,使用 Alpine.js,到当前页面,然后 PHP $_GET 将使用这些数据到 运行 一些功能。
它似乎是 return 响应中的整个页面,而不是表单数据(然后由于无效 JSON 而出错)。
如何在响应中只return提交的表单数据?
<form
method="post"
action="./"
class="form__press"
x-on:submit.prevent="
let formData = new FormData();
formData.append('username', 'Chris');
fetch('./', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
})
.then((response) => response.json())
.then((result) => {
console.log('Success:', result);
})
.catch((error) => {
console.error('Error:', error);
});"
>
<div class="field mb:15@xs">
<label for="pressEmail">Email</label>
<input type="email" name="pressEmail" autocomplete="off" required />
</div>
<div class="field mb:15@xs">
<label for="pressPassword">Password</label>
<input type="password" name="pressPassword" autocomplete="new-password" required />
</div>
<button type="submit" name="submit">Submit</button>
</form>
所以对此的正确答案是您需要 PHP 后端函数 return JSON 具有正确的内容类型 ("application/json")。
但是你也可以实现这个客户端,因为你已经得到了你想要的所有数据returned。
<form
method="post"
action="./"
class="form__press"
x-on:submit.prevent="
let formData = new FormData();
formData.append('username', 'Chris');
fetch('./', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
})
.then(() => JSON.parse(JSON.stringify(formData)))
.then((result) => {
console.log('Success:', result);
})
.catch((error) => {
console.error('Error:', error);
});"
>