Heim  >  Artikel  >  Java  >  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
PHPznach vorne
2023-05-03 21:55:061184Durchsuche

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){

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
    }
})

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
})

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
    })
})

1.3.qs.stringfy传参

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

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

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

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

二、@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
    }
})

@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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen