簡體   English   中英

React ES6 App-本地API調用

[英]React ES6 App - Local API calls

我一輩子都無法弄清楚這一點,似乎應該是直截了當的,但這只是沒有點擊。

我有一個使用create-react-app創建的ES6應用程序。 我已經為項目設置了所有模板和布局,然后嘗試從我想放在應用程序內的API提取數據-就像一個裝滿MVC的MVC,其中React處理視圖,然后運行模型和控制器在PHP中。

因此,我想在其中一個組件中獲取一個函數以獲取一些數據。 我使用fetch()函數(我知道這與許多瀏覽器尚不兼容,但這又是一天的問題)來獲取從組件到要加載的模型的相對路徑,但是fetch函數會處理我的路徑作為對基本URL的調用,后跟請求。 因此,使用在localhost:3000上運行的站點,我在getData()函數中運行以下代碼...

let test = fetch('../models/overall-stats.php').then(function(response) {
        console.log(response);
        return response;
    });

...提取的網址便是http:// localhost:3000 / models / overall-stats.php ,它可以簡單地解析回index.html文件並加載應用程序,而不是我請求的PHP文件。

如果我需要點擊該PHP文件來獲取數據,那么使用fetch是否會出錯? 還是我使用不正確? 如果我不應該使用訪存,有什么更好的方法來解決這個問題呢?

當我在apache服務器上運行此文件(在構建和部署之后)時,我可以使提取工作正常(apache可以識別URL的結構並按預期的方式命中它),並且我沒有遇到任何問題,但是我需要能夠在本地開發環境中工作並具有相同的功能。 該應用程序最終將實時部署在apache服務器上。

任何幫助將不勝感激。

我睡着之后就知道這將是非常簡單的……我只需要將我的模型和控制器移動到公共目錄中就可以訪問它們。 我將對模型進行身份驗證,以使它們不能直接被命中,而只能通過GET請求被命中。

您為什么不只使用${baseUrl}/models/...

同樣,為了解決瀏覽器獲取問題,您可以導入Polyfill或直接使用axios(我的選擇)!

也許您可以嘗試使用ajax從服務器獲取或發布數據,如下所示:

 $.ajax({
        url: '../models/overall-stats.php',
        data: {

        },
        type: 'GET',
        dataType : 'json',
        success : function(res){
           let obj = parseJSON(res)
        }

    })

或將其添加到您的php文件中,因為CORS:

header('Access-Control-Allow-Origin: *');  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM