Heim > Java > javaLernprogramm > Was ist die Spezifikation für die Trennung der Parameterübergabe zwischen Java-Axios und Spring-Front-End und -Back-End?

Was ist die Spezifikation für die Trennung der Parameterübergabe zwischen Java-Axios und Spring-Front-End und -Back-End?

PHPz
Freigeben: 2023-05-03 21:55:06
nach vorne
1288 Leute haben es durchsucht

1. Die Axios-Parameterübertragungsmethode, die der @RequestParam-Annotation entspricht. Nehmen Sie den folgenden Spring-Java-Code als Beispiel. Die Schnittstelle verwendet das POST-Protokoll und die Parameter, die akzeptiert werden müssen, sind tsCode, indexCols und table. Wie soll Axios für diese Spring-HTTP-Schnittstelle Parameter übergeben? Wie viele Methoden gibt es? Lassen Sie uns sie einzeln vorstellen.

@PostMapping("/line")
public List<? extends BaseEntity> commonEChart(@RequestParam String tsCode,
                                     @RequestParam String indexCols,
                                     @RequestParam String table){
Nach dem Login kopieren

1.1.params-Parameterübertragung (empfohlen)

Verwenden Sie die Parameter der Axios-Instanz, um Parameter zu übertragen. Die Parameter von Params werden im x-www-form-urlencoded-Format formatiert, das den Back-End-Parametern entspricht nacheinander. Die Parameterübertragung war erfolgreich. Dies ist auch die Methode zur Parameterübergabe, die ich jedem empfehle!

return request({
    url: &#39;/chart/line&#39;,
    method: &#39;post&#39;,
    params: {   //注意这里的key是params
        tsCode,
        indexCols,
        table
    }
})
Nach dem Login kopieren

1.2. FormData-Parameterübergabe

Sie können auch das FormData-Objekt von js für die Parameterformatierung verwenden und Sie können auch die Annotation @RequestParam im Spring-Backend korrekt verwenden, um Parameter zu empfangen.

let params = new FormData();
params.append(&#39;tsCode&#39;, tsCode);
params.append(&#39;indexCols&#39;, indexCols);
params.append(&#39;table&#39;, table);
return request({
    url: &#39;/chart/line&#39;,
    method: &#39;post&#39;,
    data: params   //注意这里的key是data
})
Nach dem Login kopieren

1.3.qs.stringfy Parameterübergabe@RequestParam注解进行参数接收。

import qs from "qs";

return request({
    url: &#39;/chart/line&#39;,
    method: &#39;post&#39;,
    data: qs.stringify({    //注意这里的key是data
        tsCode,
        indexCols,
        table
    })
})
Nach dem Login kopieren

1.3.qs.stringfy传参

还可以使用qs.stringfy进行参数格式化,同样可以在Spring后端正确的使用@RequestParam注解进行参数接收。

const service = axios.create({
    headers: {
        "Content-Type": "application/x-www-form-urlencoded"
    }
});
Nach dem Login kopieren

需要注意的是使用这种方法,需要手动设置header(Content-Type)

@PostMapping("/line")
public List<? extends BaseEntity> commonEChart(@RequestBody DemoModel demo){
Nach dem Login kopieren

二、@RequestBody的axios传参方法

java代码部分如下所示,DemoModel类是一个实体类,包含名称tsCode,indexCols,table三个字符串成员变量。接收到的JSON格式参数会自动为demo对象的成员变量赋值。

return request({
    url: &#39;/chart/line&#39;,
    method: &#39;post&#39;,
    data: {    //注意这里的key是data
        tsCode,
        indexCols,
        table
    }
})
Nach dem Login kopieren

@RequestBody

Sie können auch qs.stringfy für die Parameterformatierung verwenden, und Sie können auch die Annotation @RequestParam korrekt im Spring verwenden Backend. Parameter empfangen. 🎜rrreee🎜Es ist zu beachten, dass Sie bei Verwendung dieser Methode den Header (Content-Type) manuell festlegen müssen🎜rrreee🎜2. Die Axios-Parameterübergabemethode von @RequestBody ist wie folgt Entitätsklasse, einschließlich Es gibt drei String-Mitgliedsvariablen mit den Namen tsCode, indexCols und table. Den empfangenen JSON-Formatparametern werden automatisch Werte den Mitgliedsvariablen des Demo-Objekts zugewiesen. 🎜rrreee🎜@RequestBody-Annotation, die Daten standardmäßig im JSON-Format empfängt. In Axios verwendet die Standardübergabe von Datenparametern standardmäßig das JSON-Datenformat, sodass keine zusätzliche spezielle Verarbeitung erforderlich ist. 🎜rrreee

Das obige ist der detaillierte Inhalt vonWas ist die Spezifikation für die Trennung der Parameterübergabe zwischen Java-Axios und Spring-Front-End und -Back-End?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage