简体   繁体   English

在React-Native中使用Post方法获取

[英]Fetch with Post method in React-Native

I'm trying to do a fetch with the post method in my react-native, but I receive always an error: 我正在尝试使用我的react-native中的post方法进行提取,但是我总是收到一个错误:

TypeError: Network request failed
at XMLHttpRequest.xhr.onerror (whatwg-fetch.js:504)
at XMLHttpRequest.dispatchEvent (event-target.js:172)
at XMLHttpRequest.setReadyState (XMLHttpRequest.js:580)
at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:394)
at XMLHttpRequest.js:507
at RCTDeviceEventEmitter.emit (EventEmitter.js:181)
at MessageQueue.__callFunction (MessageQueue.js:366)
at MessageQueue.js:106
at MessageQueue.__guard (MessageQueue.js:314)
at MessageQueue.callFunctionReturnFlushedQueue (MessageQueue.js:105)

User creationg page 用户创建页面

static createUser(Identity, FirstName, LastName, FiscalCode , Email) {

    let formdata = new FormData();
    formdata.append('Identity', JSON.stringify(Identity));
    formdata.append('FirstName', (FirstName));
    formdata.append('LastName', LastName);
    formdata.append('FiscalCode', FiscalCode);
    formdata.append('Email', Email);



    return new Promise((resolve, reject)=> {

        fetch('https://linktomyapi.com' , {
            method: 'POST',
            headers: {
                'Content-Type': 'multipart/form-data',
                },
           body: formdata
        })
        .then((response) => response.json())
        .then((responseData) => {
            if(responseData.Error){
                Alert.alert("Errore");
            }
            global.utente = responseData;
            resolve(responseData)
        })
        .catch((err) => {reject(err)})
    })
}

About Identity, I take in this way: 关于身份,我采用这种方式:

let Identity = 
           {
               AppName: 
               {
                    Username: this.state.FiscalCode,
                    Password: this.state.Password
               }
           }

I follow many guides about this argoument, but I don't understand why I receive these errors. 我遵循了很多关于这个问题的指南,但我不明白为什么会收到这些错误。

Can you try the following? 你能试试以下吗?

let params = {
Identity: JSON.stringify(Identity),
FirstName: FirstName,
LastName: LastName,
FiscalCode: FiscalCode,
Email: Email
}
return new Promise((resolve, reject)=> {

        fetch('https://linktomyapi.com' , {
            method: 'POST',
            headers: {
                "Content-Type": "application/json",
                },
           ...(params && { body: JSON.stringify(params) })
        })
        .then((response) => response.json())
        .then((responseData) => {
            if(responseData.Error){
                Alert.alert("Errore");
            }
            global.utente = responseData;
            resolve(responseData)
        })
        .catch((err) => {reject(err)})
    })

Are sure your content type is formdata? 确定您的内容类型是formdata吗?

The problem is there: 问题是:

return new Promise((resolve, reject)=> {

        fetch('https://linktomyapi.com' , {
            method: 'POST',
            headers: {
                'Content-Type': 'multipart/form-data',
                },
           body: formdata
        })

In the fetch I pass the link as a string. 在获取中,我将链接作为字符串传递。

So the correct form is: 所以正确的形式是:

return new Promise((resolve, reject)=> {

        fetch(https://linktomyapi.com , {
            method: 'POST',
            headers: {
                'Content-Type': 'multipart/form-data',
                },
           body: formdata
        })

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM