form的action和普通的get,set有什么区别?
form 的 action 属性和普通的 get、set 方法是两个不同的概念。
<form>元素和action属性示例:
<form action="/submit-form" method="POST">
<label for="name">Name:</label>
<input type="text" id="name" name="name"><br><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email"><br><br>
<input type="submit" value="Submit">
</form>
上述示例中,<form> 元素定义了一个表单,action 属性指定了表单数据提交的URL地址为 /submit-form,method 属性指定了使用 POST 方法提交表单。当用户点击提交按钮时,表单数据将被发送到服务器端的 /submit-form 地址进行处理。
- 使用普通的
get和set方法示例:
// 使用 get 方法获取数据
function getData(url) {
return fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
}
// 使用 set 方法提交数据
function setData(url, data) {
return fetch(url, {
method: 'POST',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
}
// 调用示例
const apiUrl = '/api/data';
// 使用 get 方法获取数据
getData(apiUrl);
// 使用 set 方法提交数据
const postData = { name: 'John', email: 'john@example.com' };
setData(apiUrl, postData);
上述示例中,getData 函数使用 get 方法从指定的URL获取数据,setData 函数使用 set 方法将数据以 POST 请求发送到指定的URL。这里的 get 和 set 方法并非 HTML 表单相关的概念,而是 JavaScript 中使用 Fetch API 或其他网络请求库时的常见方法名。
总结:
<form>元素和action属性用于创建和定义表单,指定表单数据提交的URL地址和提交方法。get和set方法一般用于 JavaScript 中进行网络请求,用于获取或提交数据到指定的URL。
了解过浅拷贝和深拷贝吗?
常见的浅拷贝方法
-
Object.assign({}, obj) 使用
Object.assign方法可以将源对象的所有可枚举属性复制到目标对象中。该方法会返回目标对象。需要注意的是,该方法只会拷贝对象的第一层属性,如果对象中有嵌套对象,则仍然是浅拷贝。 -
数组解构 对于数组,我们可以使用解构语法来进行浅拷贝。例如,
[...arr]可以创建一个新数组,其中包含原数组的所有元素。
常见的深拷贝方法
深拷贝是指创建一个全新的对象,并且递归地复制所有嵌套对象的值,这样原对象和拷贝对象完全独立,互不影响。在 JavaScript 中,常用的深拷贝方法是使用JSON.parse(JSON.stringify(obj))
JSON.parse(JSON.stringify(obj))的缺陷
虽然 JSON.parse(JSON.stringify(obj))可以实现深拷贝,但是它有一些缺陷需要注意:
- 无法处理 undefined、function、Symbol 等特殊类型,这些类型在转换过程中会丢失。
- 无法处理循环引用,即对象中存在循环引用关系时会导致堆栈溢出或报错。
请求有get post put delete请问他们之间的区别是什么?
GET、POST、PUT 和 DELETE 是 HTTP 协议中的四种常见请求方法。它们之间的区别主要体现在以下几个方面:
- 语义:
GET请求用于获取资源,而POST请求用于提交数据,PUT请求用于更新资源,DELETE请求用于删除资源。 - 安全性:从安全性角度来看,
GET请求是安全的,因为它只是获取数据,不对服务器上的数据进行修改。而POST、PUT和DELETE请求都会对服务器上的数据进行修改,因此不太安全。 - 参数传递:
GET请求中参数是通过 URL 传递的,而POST、PUT和DELETE请求中参数是通过请求体传递的。 - 数据长度:由于
GET请求中参数是通过 URL 传递的,所以参数长度受到浏览器和服务器限制,一般不能超过 2KB。而POST、PUT和DELETE请求中参数是通过请求体传递的,可以传递大量数据。 - 缓存:
GET请求可以被缓存下来,而POST、PUT和DELETE请求则不能被缓存。
总体来说,GET 请求用于获取资源,POST 请求用于提交数据,PUT 请求用于更新资源,DELETE 请求用于删除资源。在实际应用中,我们需要根据具体的业务需求选择合适的请求方法。
get请求能写body吗?post请求能把某一些参数写在连接上吗?
在标准的 HTTP 规范中,GET 请求不应该具有请求体(request body),而是将参数通过 URL 的查询字符串(query string)传递。查询字符串是将参数拼接在 URL 的末尾,形如 ?key1=value1&key2=value2。
而 POST 请求则可以通过请求体(request body)来传递参数。请求体可以包含任意类型的数据,例如 JSON、表单数据等。
在 axios 中,可以使用以下方式发送 GET 请求:
axios.get(url [, config])
其中,url 是请求的 URL,config 是可选的配置对象,可以用来设置请求的相关选项。在 GET 请求中,可以通过 config.params 来设置查询参数,例如:
axios.get('/api/users', {
params: {
id: 123,
name: 'Alice'
}
})
在 axios 中,可以使用以下方式发送 POST 请求:
axios.post(url [, data [, config]])
其中,url 是请求的 URL,data 是可选的请求体数据,config 是可选的配置对象。如果需要发送 JSON 数据,则可以将 data 设置为一个对象,axios 会自动将其序列化为 JSON 字符串,并设置相应的请求头。例如:
axios.post('/api/users', {
id: 123,
name: 'Alice'
}, {
headers: {
'Content-Type': 'application/json'
}
})
请注意,在实际开发中,为了遵循 HTTP 规范,建议将 GET 请求中的参数放在查询字符串中,将非常量的参数放在 POST 请求的请求体中,这样可以提高代码的可靠性和兼容性。