Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反应本机,来自POST的json响应。JSON意外EOF_Json_React Native - Fatal编程技术网

反应本机,来自POST的json响应。JSON意外EOF

反应本机,来自POST的json响应。JSON意外EOF,json,react-native,Json,React Native,如果我在PostMan中这样做,我会得到一个可以切换html和json的响应,但在我的react原生应用程序中,我会得到一个json解析错误的控制台错误:意外的EOF 我的发送头的内容类型为x-www-form-urlencoded,因为这是即使在邮递员上也能得到正确响应的唯一方法 我在wordpress中的后端发送了一个响应数组,作为json_编码的echo json_encode$response,我可以通过url和post man获得它,但我的应用程序无法通过这个意外的EOF,我认为这与我

如果我在PostMan中这样做,我会得到一个可以切换html和json的响应,但在我的react原生应用程序中,我会得到一个json解析错误的控制台错误:意外的EOF

我的发送头的内容类型为x-www-form-urlencoded,因为这是即使在邮递员上也能得到正确响应的唯一方法

我在wordpress中的后端发送了一个响应数组,作为json_编码的echo json_encode$response,我可以通过url和post man获得它,但我的应用程序无法通过这个意外的EOF,我认为这与我的.then语句有关

我做错了什么

validate(){
    const {navigate} = this.props.navigation;

    this.setState({ validating: true });

    let formData = new FormData();
    formData.append('type', 'login');
    formData.append('email', this.state.email);
    formData.append('password', this.state.password);

    return fetch('https:/site/authentication.php', {
        method: 'POST',
        body: JSON.stringify(formData),
        headers:{
            'Content-Type': 'application/x-www-form-urlencoded'
        }
    })
        .then(response => response.json())
        .then(data => { 
            console.log(data);
            return data;
        })
      .catch(function(err) {
          console.log(err);
      })
}

看看你的回答:

Response { "_bodyBlob": Blob { "_data": Object { "blobId": "31418cda-5d2e-4ee0-8c67-626e7ebe0502", "offset": 0, "size": 0, }, }, "headers": Headers { "map": Object { "cache-control": "public, max-age=0", "content-length": "0", "content-type": "text/html; charset=UTF-8", }, }, "ok": true, "status": 200, "statusText": undefined, "type": "default", "url": "https://site/authentication.php", } Promise { "_40": 0, "_55": null, "_65": 0, "_72": null, }
我认为这是一个blob而不是JSON。请尝试使用以下方法: .thenresponse=>response.blob

对不起,我刚才错过了


Blob MDN Ref:

您是否检查了这行代码返回的响应。thenresponse=>response.json,在它将其转换为json之后?通常,如果它不是有效的JSON,则会抛出一个错误。@amir5000我在其中使用了console.log,而不是它,但是最好的检查方法是什么?@amir5000如果我这样做。thenresponse=>{response.JSON;console.logresponse.JSON;}然后我得到Promis{40:0,{55:null,{65:0,{72:null}unfinedeyeah console.log在前后都很有用,如下所示:。thenresponse=>{console.logresponse;const res=response.json;console.logres;return res;}@Amir5000响应{{u-bodyBlob:Blob{u-data:Object{blobId:31418cda-5d2e-4ee0-8c67-626e7ebe0502,偏移量:0,大小:0,},headers:headers{map:Object{cache-control:public,max-age=0,内容长度:0,内容类型:text/html;charset=UTF-8,},},},ok:true,状态:200,状态文本:未定义,类型:默认,url:https://site/authentication.php,}承诺{{u 40:0,{u 55:null,{u 65:0,{u 72:null,}好的,我现在在我的wordpress站点authentication.php$response['status']=true;$response['data']=array'auth_token'=>$token,'user_id'=>$user->id,'user_login'=>$user->user\u login;$response['msg']='Successfully Authenticated';echo json_encode$response;我还需要做什么?请看您的响应是否已成功通过身份验证,这将以文本形式发送回来,这样您就可以在前端使用response.text处理此问题,而且效果会很好。等等,我刚才发布的内容在网站上的php文件中。但是使用Response.text并没有改变我的控制台这个日志现在是什么?使用.text.thenresponse=>{const res=response.text;console.logres;return res;}这和我之前发布的一样