axios post 变成了option
时间: 2023-09-13 09:13:22 浏览: 40
axios 发送 POST 请求变成 OPTIONS 的情况可能是因为跨域问题导致的。浏览器在发送跨域请求时,会先发送一个 OPTIONS 请求进行预检,检查服务器是否允许跨域请求,如果允许,才会发送真正的请求。可以在服务器端设置允许跨域请求的头信息,比如Access-Control-Allow-Origin等。另外,也可以使用代理服务器来解决跨域问题。
相关问题
//首先引入axios库 import axios from 'axios'; //然后在代码中使用axios发送post请求 axios.post(commenUrl + '/ltd/department/findDepartmentsByOrgCode', departmentParam) .then(function (response) { //请求成功后的回调函数 var departData = response.data.data; var htmlStr = '<option value="">请选择部门</option>'; for (var i = 0; i < departData.length; i++) { var departName = departData[i].departName; var departCode = departData[i].departCode; htmlStr += '<option value="' + departCode + '">' + departName + '</option>' } $("#department").html(htmlStr); }) .catch(function (error) { //请求失败后的回调函数 console.log(error); });请把这里的代码 改成上面那种的写法
以下是将代码改写成函数形式的示例:
```
function findDepartmentsByOrgCode(departmentParam) {
return axios({
url: commenUrl + '/ltd/department/findDepartmentsByOrgCode',
method: 'post',
data: departmentParam
}).then(function(response) {
var departData = response.data.data;
var htmlStr = '<option value="">请选择部门</option>';
for (var i = 0; i < departData.length; i++) {
var departName = departData[i].departName;
var departCode = departData[i].departCode;
htmlStr += '<option value="' + departCode + '">' + departName + '</option>'
}
$("#department").html(htmlStr);
}).catch(function(error) {
console.log(error);
});
}
// 调用函数
var departmentParam = { /* 请求参数 */ };
findDepartmentsByOrgCode(departmentParam);
```
在这个示例中,将原来的axios.post()方法改写成了使用axios()函数的形式,并且指定了data属性作为请求参数。使用Promise的then()和catch()方法处理请求成功或失败的回调函数,并且将请求结果更新到HTML页面中。最后,将这个函数封装成了一个单独的函数,方便在其他地方调用。
vue3跨域option
请求如何配置?
对于跨域请求,可以在 Vue3 中使用 axios 或 fetch API。在发送请求时,需要在请求头中添加 Access-Control-Allow-Origin 字段来允许跨域请求,同时也可以配置一些其他的请求参数,如下所示:
axios.defaults.baseURL = 'http://localhost:8080'
axios.defaults.withCredentials = true
axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*'
axios.defaults.headers.common['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE'
axios.defaults.headers.common['Access-Control-Allow-Headers'] = 'Authorization, Content-Type'
fetch('http://localhost:8080/api/data', {
method: 'GET',
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',
'Access-Control-Allow-Headers': 'Authorization, Content-Type'
},
credentials: 'include'
}).then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
请注意,以上代码仅供参考,具体的配置参数和请求方式可能会因应用场景的不同而有所改变。