“Unhandled Rejection(SyntaxError):位于0的JSON中的意外标记h”,带有response.json()

我只想让php文件“echo $ string ='hello world';” 在我的ReactJS应用程序的html页面上。</ p>

但我从浏览器(谷歌浏览器)收到此错误:</ p>

“未处理的拒绝(SyntaxError) :位于0的JSON中的意外标记h“</ p>

表明这是引起问题的行:</ p>

  .then((响应)  )=&gt; response.json()
</ code> </ pre>

我的JavaScript:</ p>

  import React,{Component} from  'react'
import'。/ App.css'
nnnnclass App扩展组件{

componentDidMount(){

fetch('http://localhost/finaldemo.php')
.then((response)=&gt; response.json())
.then((responseJson)=&gt; {
console.log(responseJson)
})
}

渲染( ){
return(
&lt; div&gt;
&lt; p&gt; HELLO&lt; / p&gt;
&lt; / div&gt;
);
}
}
export默认App;
</ 代码> </ pre>

我的PHP:</ p>

 &lt;?php header('Access-Control-Allow-Origin:http:// localhost  :3000');?&gt; 
&lt;?php
echo $ string ='hello world';
?&gt;
</ code> </ pre>

问题出在哪里? </ p>

提前致谢!</ p>
</ div>

展开原文

原文

I simply want the php file to "echo $string = 'hello world';" on the html page of my ReactJS app.

But I get this error from my Browser (Google Chrome):

"Unhandled Rejection (SyntaxError): Unexpected token h in JSON at position 0"

Indicating that this is the line causing the issue:

.then((response) => response.json()

My JavaScript:

import React, { Component } from 'react'
import './App.css'


class App extends Component {

    componentDidMount(){

        fetch('http://localhost/finaldemo.php')
        .then((response) => response.json())
        .then((responseJson) => {
            console.log(responseJson)
        })
    }


    render () {
        return (
            <div>
            <p> HELLO </p>
            </div>
        );
    }   
}
export default App;

My PHP:

<?php header('Access-Control-Allow-Origin: http://localhost:3000');?>
<?php
    echo $string = 'hello world';
?>

Where is the problem?

Thanks in advance!

duanhai7274
duanhai7274 检查您的回复标题。它是Content-Type:application/json或其他东西。
2 年多之前 回复
douling8087
douling8087 你好世界是无效的json。
2 年多之前 回复

2个回答



response.json()期望fetch的响应采用JSON格式。 然后它将自动放入JSON.parse以将其转换为javascript对象。 </ p>

你的'hello world'只是文本而不是JSON。 你可以使用response.text()然后它会期望一个文本。 </ p>

或者你可以让PHP发送一个真实的JSON,如'{“message”:“hello world”}'</ p>
</ div>

展开原文

原文

response.json() expects the response from fetch to be in JSON format. which it will then automatically put in JSON.parse to convert it to a javascript object.

your 'hello world' is just text and not a JSON. you can use response.text() and then it will expect a text.

Or you can have the PHP send an actual JSON like '{"message":"hello world"}'



检查Chrome开发工具中的“网络”标签,查看服务器响应的内容,并检查它是否为 Content-Type :application / json </ code> </ p>
</ div>

展开原文

原文

Check the "Network" tab in Chrome dev tools to see contents of the server's response, and check if it's Content-Type:application/json

duansha3771
duansha3771 Content-Type:application / json只是内容标题,内容标题只是返回数据类型的信息,你必须返回一个json数据才能使用response.json()就像echo $ string =“{text:' 你好,世界 ' }”;
2 年多之前 回复
doumi2106
doumi2106 不,PHP和JS之间是fetch。 我该如何解决这个问题?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐