Al transferir datos con el servidor, los métodos GET y POST generalmente se utilizan para el envío de parámetros, y el método de envío de parámetros generalmente depende de la forma en que el servidor recibe los datos.
1.Solicitar carga útil
Cuando se inicia una solicitud POST, si el tipo de contenido es application / json, los parámetros se pasarán en forma de Request Payload (obviamente, el formato de datos es JSON) y no aparecerán explícitamente en la URL de la solicitud.
encabezados:
parámetros entrantes:
La interfaz de solicitud de vue axois se analiza como Request Payload de forma predeterminada.
Si desea pasar datos a través de Form Data, puede usar el método nativo formData () para ensamblar datos, y el tipo de contenido debe establecerse en multipart / form-data.
Plan de liberación:
cambie 'Content-Type': 'application / json' a: 'Content-Type': 'application / x-www-form-urlencoded', el
método es el siguiente:
// 通用公用方法
const req = (method, url, params) => {
return axios({
method: method,
url: url,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
data: params,
traditional: true,
transformRequest: [
function(data) {
let ret = ''
for (let it in data) {
ret +=
encodeURIComponent(it) +
'=' +
encodeURIComponent(data[it]) +
'&'
}
return ret
}
]
}).then(res => res.data);};
El cuerpo de la solicitud es Request Payload y el encabezado de la solicitud Content-Type: application / json. Para solicitudes de esta manera, @RequestParam no puede recibir parámetros en segundo plano. Solo puede usar @RequestBody o implementar la interfaz HandlerMethodArgumentResolver de Spring y personalizar los parámetros. El analizador recibe los parámetros individualmente.
El formato del cuerpo de la solicitud de la carga útil de la solicitud es una cadena en formato json:
{"loginName": "admin", "contraseña": "123456"}
2.Datos del formulario
Cuando se inicia una solicitud POST, si no se especifica el tipo de contenido, el tipo de contenido predeterminado es application / x-www-form-urlencoded. Es decir, los parámetros se pasarán en forma de datos de formulario y no aparecerán explícitamente en la URL de la solicitud.
Solicitud de datos del formulario:
El formato del cuerpo de la solicitud de los datos del formulario es key = value & key1 = value2:
loginName = admin & password = 123456
Procesamiento en segundo plano:
para solicitudes de carga útil de solicitud, se debe agregar @RequestBody para analizar el cuerpo de la solicitud en el bean correspondiente, y el contenido del cuerpo de la solicitud solo se puede obtener a través de request.getReader ()
Para las solicitudes de Form Data, no hay necesidad de anotaciones, springmvc usará automáticamente MessageConverter para analizar los parámetros de solicitud a los beans correspondientes, y los parámetros de solicitud se pueden obtener a través de request.getParameter (...), o recibidos a través de @RequestParam
3.Parámetros de cadena de consulta
Parámetros de cadena de consulta Cuando se inicia una solicitud GET, los parámetros se pasarán en forma de cadena de URL. Es decir, la cadena después de? Es su parámetro de solicitud, con & como separador. Los siguientes encabezados de mensajes de solicitud http:
encabezados:
parámetros entrantes: