1. フロントエンドは axios に基づいて POST リクエストを送信し、コンソールはエラーを報告します: オリジン 'http://localhost:8080' から 'http://localhost:8081/allocate/addAllocate' の XMLHttpRequest へのアクセスが行われましたCORS ポリシーによってブロックされました: プリフライト要求への応答がアクセス制御チェックに合格しません: 要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。
理由: クロスドメインリクエスト、特定の理由 Baidu。
解決策: バックエンド コントローラーの前に @CrossOrigin アノテーションを追加します。
2. vuex を使用してコンポーネント間でデータを共有すると、コンソールは this.$store is unknown というエラーを報告し、共有データにアクセスできません。
理由:内容が変更になりましたが、具体的な理由は分かりません。
解決策: const store=useStore() を関数の外で定義し、メソッド内で store.state. 変数名を使用して共有データにアクセスします。
ルーターを使用しているときに同じ問題が発生しましたが、const router=useRouter() として定義されている点を除けば、おそらく理由も解決策も同じです。
3. JSONObject.parseArray メソッドを使用して配列変換を実行します。正常に読み取れるデータと、正常に読み取れないデータがあります。
List<allocateitems> newItems= JSONObject.parseArray(JSON.toJSONString(map.get("data")) , allocateitems.class);
私のエンティティ クラスには、goodID と num という 2 つの属性が含まれており、名前 (データ型とフロントエンドによって返されるデータ型を含む) を除いてまったく同じです。その結果、goodID はどうやっても読み取ることができませんが、numは普通。
解決策: エンティティ クラスの名前「good」を「goodId」に変更します。
4. ID は自動インクリメントに設定されているため、他のテーブルのエントリとのマッピング関係を確立するためにエントリの ID を取得することは困難です。
解決する:
allocateMapper.insert(newAllocate);//先插入表格
int allocate_id=newAllocate.getId();//获取自动修改的id
for (allocateitems tmp: newItems) {
tmp.setAllocate_id(allocate_id);
}
まずテーブルにデータを挿入しますが、このとき変数のidは自動的に自動インクリメントされるidに変更されて取得されます。