uniapp,uviewドメイン間ソリューション


初めてuniappを手に入れてプロジェクトをして、出会ったピット-フロントエンドajaxはドメイン間の問題を報告するように要求した.
1.サーバーが実際にドメイン間の問題を解決していない
uni-appのmanifestを構成します.json->h5->devServer
   "h5": {
        "devServer": {
            "port": 8080,//  
            "disableHostCheck": true,
            "proxy": {
                "/api": {
                    "target": "http://www.xxxxx.net",//      
                    "changeOrigin": true,//   
                    "secure": false,//    https     
                }
            }
        }
    }

パラメータ解析の詳細は、次のとおりです.https://www.jb51.net/article/180961.htm
その他の解決方法の詳細は、次のとおりです.https://ask.dcloud.net.cn/article/35267
2.サーバー側はドメイン間問題の解決を処理したが、アクセスはドメイン間エラーのままである
Access to XMLHttpRequest at 'http://xxxxx.com/api/public/getLiveClass' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource
ブラウザconsoleデバッガで次のエラーが発生しました.
consloe调试器 报错
ブラウザnetworkでエラーが発生したリクエストheadersは次のとおりです.
uniapp,uview跨域解决方案_第1张图片
数時間の資料を調べて、やっとuniを発見しました.requestのヘッダパラメータでcontent-typeを'application/x-www-form-urlencoded'に設定ことで、上記のドメイン間問題を解決することができる.
header: {
    'content-type': 'application/x-www-form-urlencoded',
}

uviewパッケージのhttpリクエストツールを使用する場合も、上記の問題を報告し、解決方法は以下の通りです.
httpが見つかりました.interceptor.jsファイルは、ボックスの指示に変更すればいいです.
uniapp,uview跨域解决方案_第2张图片
変更理由:uviewのhttpリクエストツールでは、headerのcontent-typeが「アプリケーション/json」にデフォルト設定されています.charset=UTF-8′である、サーバ側が認識していないため、要求は「options」となる.上の画像ファイルのスクリーンショット指示位置でcontent-typeを「アプリケーション/x-www-form-urlencoded」に再設定すれば、使いやすい.
ドメイン間でエラーが発生した場合はhttp.interceptor.jsファイル'config.header.token='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
uniapp,uview跨域解决方案_第3张图片