uniapp,uviewドメイン間ソリューション
初めてuniappを手に入れてプロジェクトをして、出会ったピット-フロントエンドajaxはドメイン間の問題を報告するように要求した.
1.サーバーが実際にドメイン間の問題を解決していない
uni-appのmanifestを構成します.json->h5->devServer
パラメータ解析の詳細は、次のとおりです.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デバッガで次のエラーが発生しました.
ブラウザnetworkでエラーが発生したリクエストheadersは次のとおりです.
数時間の資料を調べて、やっとuniを発見しました.requestのヘッダパラメータでcontent-typeを'application/x-www-form-urlencoded'に設定ことで、上記のドメイン間問題を解決することができる.
uviewパッケージのhttpリクエストツールを使用する場合も、上記の問題を報告し、解決方法は以下の通りです.
httpが見つかりました.interceptor.jsファイルは、ボックスの指示に変更すればいいです.
変更理由:uviewのhttpリクエストツールでは、headerのcontent-typeが「アプリケーション/json」にデフォルト設定されています.charset=UTF-8′である、サーバ側が認識していないため、要求は「options」となる.上の画像ファイルのスクリーンショット指示位置でcontent-typeを「アプリケーション/x-www-form-urlencoded」に再設定すれば、使いやすい.
ドメイン間でエラーが発生した場合はhttp.interceptor.jsファイル'config.header.token='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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デバッガで次のエラーが発生しました.
ブラウザnetworkでエラーが発生したリクエストheadersは次のとおりです.
数時間の資料を調べて、やっとuniを発見しました.requestのヘッダパラメータでcontent-typeを'application/x-www-form-urlencoded'に設定ことで、上記のドメイン間問題を解決することができる.
header: {
'content-type': 'application/x-www-form-urlencoded',
}
uviewパッケージのhttpリクエストツールを使用する場合も、上記の問題を報告し、解決方法は以下の通りです.
httpが見つかりました.interceptor.jsファイルは、ボックスの指示に変更すればいいです.
変更理由:uviewのhttpリクエストツールでは、headerのcontent-typeが「アプリケーション/json」にデフォルト設定されています.charset=UTF-8′である、サーバ側が認識していないため、要求は「options」となる.上の画像ファイルのスクリーンショット指示位置でcontent-typeを「アプリケーション/x-www-form-urlencoded」に再設定すれば、使いやすい.
ドメイン間でエラーが発生した場合はhttp.interceptor.jsファイル'config.header.token='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx