2017-08-25 75 views
0

這裏是代碼:RNCookieManagerAndroid.get了4個參數,預計3 -react本地

componentDidMount() { 
    // Get cookies as a request header string 
    CookieManager.get("http://10.42.0.1:8000/login", (err, res) => { 

     // Outputs 'user_session=abcdefg; path=/;' 
     fetch("http://10.42.0.1:8000/login", { 
     method: "POST", 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json', 
      'X-CSRFToken': res.csrftoken, 
     }, 
     body: JSON.stringify({ 
      username: 'user', 
      password: 'securepassword', 
     }) 
     }) 
     .then((response) => response.json()) 
     .then((responseJson) => { 
     console.log(responseJson); 
     }) 
    }); 
    } 

上面的代碼顯示在模擬器錯誤!

截圖Android模擬器的---

enter image description here

這裏安裝

yarn add react-native-cookies 

以及其他的指示。 還進口在app.js文件

import CookieManager from 'react-native-cookies'; 

一切似乎是正確仍顯示出這個錯誤.. 任何建議都歡迎.. 謝謝!

回答

1

模塊反應本土餅乾實現承諾在它和它給人的響應作爲承諾的對象,所以你做錯的唯一的事情是,你正在處理您的Cookiemanager.get呼叫的響應方式。 如下更改您的代碼,然後你是好去:)

componentDidMount() { 
// Get cookies as a request header string 
CookieManager.get("http://10.42.0.1:8000/login") 
    .then((res) => { 

    // Outputs 'user_session=abcdefg; path=/;' 
    fetch("http://10.42.0.1:8000/login", { 
    method: "POST", 
    headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json', 
     'X-CSRFToken': res.csrftoken, 
    }, 
    body: JSON.stringify({ 
     username: 'user', 
     password: 'securepassword', 
    }) 
    }) 
    .then((response) => response.json()) 
    .then((responseJson) => { 
    console.log(responseJson); 
    }) 

    }).catch((err) => { 
     //handle your error here 
    }) 
} 

這是你在做什麼錯。讓我知道你是否還有其他需要的東西。

+0

是的,非常感謝,我從2天卡住了,它現在沒有顯示任何錯誤,並且獲取方法工作正常,但是'CookieManager.get(「http://10.42.0.1:8000/login」)'沒有在服務器上給予任何迴應意味着只有使用'username'和'password'命令才能訪問服務器。 CSRFToken,我想與'CookieManager.get'一起來不是我應該爲此做什麼... –

+0

你想查看django服務器的結果清除信息? –

+0

不知道django服務器。我認爲你需要爲此添加一個不同的問題。您對上述問題的問題已解決:) –

相關問題