【发布时间】:2021-07-28 23:34:11
【问题描述】:
我正在尝试在 React 中调用 fetch 来与我在 MAMP 上运行的 PHP 脚本对话。
由于某种原因,它给了我错误..我不确定从这里去哪里..
这是我在 React 中使用的代码:
getPHP = () => {
var formData = new FormData();
formData.append('content', 'test2');
fetch(`http://localhost:8888/phpBackend/demo.php`, {
method: 'POST',
headers: {
},
body: formData,
}).then(res => res.json())
.then(response => {
console.log('response:');
console.log(response);
});
}
onSubmit = (e) => {
e.preventDefault();
this.getPHP();
}
还有我的 PHP 脚本:
<?php
$content = $_POST['content']
$response = array("success" => true, "message" => $content);
echo json_encode($response);
?>
我收到此错误:
FileUploader.js:20 POST http://localhost:8888/phpBackend/demo.php 500 (Internal Server Error)
UserForm._this.getPHP @ FileUploader.js:20
UserForm._this.onSubmit @ FileUploader.js:44
callCallback @ react-dom.development.js:100
invokeGuardedCallbackDev @ react-dom.development.js:138
invokeGuardedCallback @ react-dom.development.js:187
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:201
executeDispatch @ react-dom.development.js:461
executeDispatchesInOrder @ react-dom.development.js:483
executeDispatchesAndRelease @ react-dom.development.js:581
executeDispatchesAndReleaseTopLevel @ react-dom.development.js:592
forEachAccumulated @ react-dom.development.js:562
runEventsInBatch @ react-dom.development.js:723
runExtractedEventsInBatch @ react-dom.development.js:732
handleTopLevel @ react-dom.development.js:4476
batchedUpdates$1 @ react-dom.development.js:16659
batchedUpdates @ react-dom.development.js:2131
dispatchEvent @ react-dom.development.js:4555
interactiveUpdates$1 @ react-dom.development.js:16714
interactiveUpdates @ react-dom.development.js:2150
dispatchInteractiveEvent @ react-dom.development.js:4532
FileUploader.js:25 Uncaught (in promise) SyntaxError: Unexpected end of JSON input
at FileUploader.js:25
最初存在跨域问题 (cors),但已通过我添加的 .htaccess 文件解决:
<IfModule mod_rewrite.c>
Header add Access-Control-Allow-Origin: "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header add Access-Control-Allow-Headers: "Content-Type"
RewriteEngine on
RewriteBase /
</IfModule>
有人知道为什么会抛出错误吗?
【问题讨论】:
-
如果你这样做,你是否仍然得到错误,例如
array("success" => true, "message" => true);作为测试? -
@Tholle - 是的..仍然出现错误..
-
在 Chrome 开发者工具(网络)中查看请求/响应。检查标头和有效负载。
-
这对你们有什么意义吗?我对这些东西还是初学者水平.. 看起来 FormData 已收到? drive.google.com/file/d/1OZcBCEPKqxqT8okjQQMVfHX1P2JqisLH/…
-
小问题,你可以通过邮递员或其他方式发布到网址吗?我的意思是这个网址
http://localhost:8888/phpBackend/demo.php
标签: javascript php node.js reactjs http