http 错误代码表
Nodejs • lopo1983 发表了文章 • 0 个评论 • 1335 次浏览 • 2017-12-18 12:01
代码??指示??
2xx??成功??
200??正常;请求已完成。??
201??正常;紧接 POST 命令。??
202??正常;已接受用于处理,但处理尚未完成。??
203??正常;部分信息 — 返回的信息只是一部分。??
204??正常;无响应 — 已接收请求,但不存在要回送的信息。??
3xx??重定向??
301??已移动 — 请求的数据具有新的位置且更改是永久的。??
302??已找到 — 请求的数据临时具有不同 URI。??
303??请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。??
304??未修改 — 未按预期修改文档。??
305??使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。??
306??未使用 — 不再使用;保留此代码以便将来使用。??
4xx??客户机中出现的错误??
400??错误请求 — 请求中有语法问题,或不能满足请求。??
401??未授权 — 未授权客户机访问数据。??
402??需要付款 — 表示计费系统已有效。??
403??禁止 — 即使有授权也不需要访问。??
404??找不到 — 服务器找不到给定的资源;文档不存在。??
407??代理认证请求 — 客户机首先必须使用代理认证自身。??
415??介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。??
5xx??服务器中出现的错误??
500??内部错误 — 因为意外情况,服务器不能完成请求。??
501??未执行 — 服务器不支持请求的工具。??
502??错误网关 — 服务器接收到来自上游服务器的无效响应。??
503??无法获得服务 — 由于临时过载或维护,服务器无法处理请求。
?
--------------------------------------------------------------------------------------------------------
?
HTTP?400?-?请求无效?
HTTP?401.1?-?未授权:登录失败?
HTTP?401.2?-?未授权:服务器配置问题导致登录失败?
HTTP?401.3?-?ACL?禁止访问资源?
HTTP?401.4?-?未授权:授权被筛选器拒绝?
HTTP?401.5?-?未授权:ISAPI?或?CGI?授权失败??
HTTP?403?-?禁止访问?
HTTP?403?-?对?Internet?服务管理器?(HTML)?的访问仅限于?Localhost?
HTTP?403.1?禁止访问:禁止可执行访问?
HTTP?403.2?-?禁止访问:禁止读访问?
HTTP?403.3?-?禁止访问:禁止写访问?
HTTP?403.4?-?禁止访问:要求?SSL?
HTTP?403.5?-?禁止访问:要求?SSL?128?
HTTP?403.6?-?禁止访问:IP?地址被拒绝?
HTTP?403.7?-?禁止访问:要求客户证书?
HTTP?403.8?-?禁止访问:禁止站点访问?
HTTP?403.9?-?禁止访问:连接的用户过多?
HTTP?403.10?-?禁止访问:配置无效?
HTTP?403.11?-?禁止访问:密码更改?
HTTP?403.12?-?禁止访问:映射器拒绝访问?
HTTP?403.13?-?禁止访问:客户证书已被吊销?
HTTP?403.15?-?禁止访问:客户访问许可过多?
HTTP?403.16?-?禁止访问:客户证书不可信或者无效?
HTTP?403.17?-?禁止访问:客户证书已经到期或者尚未生效?
HTTP?404.1?-?无法找到?Web?站点?
HTTP?404?-?无法找到文件?
HTTP?405?-?资源被禁止?
HTTP?406?-?无法接受?
HTTP?407?-?要求代理身份验证?
HTTP?410?-?永远不可用?
HTTP?412?-?先决条件失败?
HTTP?414?-?请求?-?URI?太长?
HTTP?500?-?内部服务器错误?
HTTP?500.100?-?内部服务器错误?-?ASP?错误?
HTTP?500-11?服务器关闭?
HTTP?500-12?应用程序重新启动?
HTTP?500-13?-?服务器太忙?
HTTP?500-14?-?应用程序无效?
HTTP?500-15?-?不允许请求?global.asa?
Error?501?-?未实现?
HTTP?502?-?网关错误? 查看全部
代码??指示??
2xx??成功??
200??正常;请求已完成。??
201??正常;紧接 POST 命令。??
202??正常;已接受用于处理,但处理尚未完成。??
203??正常;部分信息 — 返回的信息只是一部分。??
204??正常;无响应 — 已接收请求,但不存在要回送的信息。??
3xx??重定向??
301??已移动 — 请求的数据具有新的位置且更改是永久的。??
302??已找到 — 请求的数据临时具有不同 URI。??
303??请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。??
304??未修改 — 未按预期修改文档。??
305??使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。??
306??未使用 — 不再使用;保留此代码以便将来使用。??
4xx??客户机中出现的错误??
400??错误请求 — 请求中有语法问题,或不能满足请求。??
401??未授权 — 未授权客户机访问数据。??
402??需要付款 — 表示计费系统已有效。??
403??禁止 — 即使有授权也不需要访问。??
404??找不到 — 服务器找不到给定的资源;文档不存在。??
407??代理认证请求 — 客户机首先必须使用代理认证自身。??
415??介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。??
5xx??服务器中出现的错误??
500??内部错误 — 因为意外情况,服务器不能完成请求。??
501??未执行 — 服务器不支持请求的工具。??
502??错误网关 — 服务器接收到来自上游服务器的无效响应。??
503??无法获得服务 — 由于临时过载或维护,服务器无法处理请求。
?
--------------------------------------------------------------------------------------------------------
?
HTTP?400?-?请求无效?
HTTP?401.1?-?未授权:登录失败?
HTTP?401.2?-?未授权:服务器配置问题导致登录失败?
HTTP?401.3?-?ACL?禁止访问资源?
HTTP?401.4?-?未授权:授权被筛选器拒绝?
HTTP?401.5?-?未授权:ISAPI?或?CGI?授权失败??
HTTP?403?-?禁止访问?
HTTP?403?-?对?Internet?服务管理器?(HTML)?的访问仅限于?Localhost?
HTTP?403.1?禁止访问:禁止可执行访问?
HTTP?403.2?-?禁止访问:禁止读访问?
HTTP?403.3?-?禁止访问:禁止写访问?
HTTP?403.4?-?禁止访问:要求?SSL?
HTTP?403.5?-?禁止访问:要求?SSL?128?
HTTP?403.6?-?禁止访问:IP?地址被拒绝?
HTTP?403.7?-?禁止访问:要求客户证书?
HTTP?403.8?-?禁止访问:禁止站点访问?
HTTP?403.9?-?禁止访问:连接的用户过多?
HTTP?403.10?-?禁止访问:配置无效?
HTTP?403.11?-?禁止访问:密码更改?
HTTP?403.12?-?禁止访问:映射器拒绝访问?
HTTP?403.13?-?禁止访问:客户证书已被吊销?
HTTP?403.15?-?禁止访问:客户访问许可过多?
HTTP?403.16?-?禁止访问:客户证书不可信或者无效?
HTTP?403.17?-?禁止访问:客户证书已经到期或者尚未生效?
HTTP?404.1?-?无法找到?Web?站点?
HTTP?404?-?无法找到文件?
HTTP?405?-?资源被禁止?
HTTP?406?-?无法接受?
HTTP?407?-?要求代理身份验证?
HTTP?410?-?永远不可用?
HTTP?412?-?先决条件失败?
HTTP?414?-?请求?-?URI?太长?
HTTP?500?-?内部服务器错误?
HTTP?500.100?-?内部服务器错误?-?ASP?错误?
HTTP?500-11?服务器关闭?
HTTP?500-12?应用程序重新启动?
HTTP?500-13?-?服务器太忙?
HTTP?500-14?-?应用程序无效?
HTTP?500-15?-?不允许请求?global.asa?
Error?501?-?未实现?
HTTP?502?-?网关错误?
express express-jwt(token)简单使用案例
Nodejs • lopo1983 发表了文章 • 0 个评论 • 3386 次浏览 • 2017-10-07 01:02
// jwt中间件
app.use(expressJwt({
secret: "yousecret"//加密密钥,可换
}).unless({
path: ["/api/login","/api/addUser","/api/test"]//添加不需要token验证的路由
}));生成token? promise化 dao.query(UserSQL.isName, paramA).then(result => {
user = result[0];
if(cryptPwd(param.password, user.salt)[1] === user.password) {
let authToken = jwt.sign({
name: user.userName,
password: user.password,
group: user.group,
salt: '123'
}, "secret", {
expiresIn: "10 days"
});
res.json({
code: 200,
msg: '登录成功',
token: authToken
});
} else {
res.json({
code: 250,
msg: '用户名或密码不正确'
})
};
}) 查看全部
var expressJwt = require("express-jwt");生成token? promise化
// jwt中间件
app.use(expressJwt({
secret: "yousecret"//加密密钥,可换
}).unless({
path: ["/api/login","/api/addUser","/api/test"]//添加不需要token验证的路由
}));
dao.query(UserSQL.isName, paramA).then(result => {
user = result[0];
if(cryptPwd(param.password, user.salt)[1] === user.password) {
let authToken = jwt.sign({
name: user.userName,
password: user.password,
group: user.group,
salt: '123'
}, "secret", {
expiresIn: "10 days"
});
res.json({
code: 200,
msg: '登录成功',
token: authToken
});
} else {
res.json({
code: 250,
msg: '用户名或密码不正确'
})
};
})
promise 化mysqljs
Nodejs • lopo1983 发表了文章 • 0 个评论 • 1508 次浏览 • 2017-10-02 07:02
// 导入MySQL模块
const mysql = require('mysql');
const dbConfig = require('../db/DBConfig');
// 使用DBConfig.js的配置信息创建一个MySQL连接池
const pool = mysql.createPool(dbConfig.mysql);
module.exports = {
query: function (sql,args = []) {
return new Promise((resolve, reject) => {
// 获取数据库连接
pool.getConnection((err, connection) => {
if (err) {
// 错误返回- 自己可以另外带参数,判断错误类型
reject(err)
} else {
// 执行数据查询
connection.query(sql, args, (err, res) => {
if (err) {
// 错误返回- 自己可以另外带参数,判断错误类型
reject(err)
} else {
// 查询成功
resolve(res);
}
})
}
})
})
}
} 查看全部
感谢戏子大爷
// 导入MySQL模块
const mysql = require('mysql');
const dbConfig = require('../db/DBConfig');
// 使用DBConfig.js的配置信息创建一个MySQL连接池
const pool = mysql.createPool(dbConfig.mysql);
module.exports = {
query: function (sql,args = []) {
return new Promise((resolve, reject) => {
// 获取数据库连接
pool.getConnection((err, connection) => {
if (err) {
// 错误返回- 自己可以另外带参数,判断错误类型
reject(err)
} else {
// 执行数据查询
connection.query(sql, args, (err, res) => {
if (err) {
// 错误返回- 自己可以另外带参数,判断错误类型
reject(err)
} else {
// 查询成功
resolve(res);
}
})
}
})
})
}
}
promise 化 jsonwebtoken
Nodejs • lopo1983 发表了文章 • 0 个评论 • 1477 次浏览 • 2017-10-02 07:00
exports._jwt = jwt
exports.sign = (payload, key, opts) => {
opts = opts || {}
return new Promise((resolve, reject) => {
jwt.sign(payload, key, opts, (err, token) => {
if (err || !token) return reject(err)
resolve(token)
})
})
}
exports.verify = (token, key, opts) => {
opts = opts || {}
return new Promise((resolve, reject) => {
jwt.verify(token, key, opts, (err, verified) => {
if (err) return reject(err)
resolve(verified)
})
})
} 查看全部
const jwt = require('jsonwebtoken')
exports._jwt = jwt
exports.sign = (payload, key, opts) => {
opts = opts || {}
return new Promise((resolve, reject) => {
jwt.sign(payload, key, opts, (err, token) => {
if (err || !token) return reject(err)
resolve(token)
})
})
}
exports.verify = (token, key, opts) => {
opts = opts || {}
return new Promise((resolve, reject) => {
jwt.verify(token, key, opts, (err, verified) => {
if (err) return reject(err)
resolve(verified)
})
})
}
basicSQL
Nodejs • lopo1983 发表了文章 • 0 个评论 • 1428 次浏览 • 2017-09-28 04:02
queryAll(db, limit = '') {
return 'SELECT * FROM ' + db + ' limit ' + limit
},
insertAll(db, num) {
return 'INSERT INTO ' + db + ' VALUES ("id",' + Array(num).fill('?').join() + ')'
},
delAll(db, id) {
return 'DELETE FROM ' + db + ' WHERE id=' + id
},
next(db, id, num) {
return 'select * from ' + db + 'where' + id + ' = (select max(' + id + ') from ' + db + ' where ' + id + ' < ' + num + ' )'
},
prev(db, id, num) {
return 'select * from ' + db + 'where' + id + ' = (select min(' + id + ') from ' + db + ' where ' + id + ' > ' + num + ' )'
},
insertOnly(db,num){
return 'insert ignore '+db+ ' VALUES ("id",' + Array(num).fill('?').join() + ')'
}
}
数据库名为dbname,表名table,字段名fieldname.
ALTER TABLE dbname.table ADD UNIQUE (fieldname); 查看全部
module.exports = {
queryAll(db, limit = '') {
return 'SELECT * FROM ' + db + ' limit ' + limit
},
insertAll(db, num) {
return 'INSERT INTO ' + db + ' VALUES ("id",' + Array(num).fill('?').join() + ')'
},
delAll(db, id) {
return 'DELETE FROM ' + db + ' WHERE id=' + id
},
next(db, id, num) {
return 'select * from ' + db + 'where' + id + ' = (select max(' + id + ') from ' + db + ' where ' + id + ' < ' + num + ' )'
},
prev(db, id, num) {
return 'select * from ' + db + 'where' + id + ' = (select min(' + id + ') from ' + db + ' where ' + id + ' > ' + num + ' )'
},
insertOnly(db,num){
return 'insert ignore '+db+ ' VALUES ("id",' + Array(num).fill('?').join() + ')'
}
}
数据库名为dbname,表名table,字段名fieldname.
ALTER TABLE dbname.table ADD UNIQUE (fieldname);
vue-devtools自己编译安装 (通过扩展安装)
VUE • lopo1983 发表了文章 • 0 个评论 • 1876 次浏览 • 2017-07-29 05:13
1.下载源码 源码地址:https://github.com/vuejs/vue-devtools
?
2.进去制定目录 cnpm i -->npm run build
? ?若使用firefox?cnpm i -->npm run run:firefox
?
3.进入shells 目录 修改mainifest.json 中的persistant为true
?
4.chrome->设置->更多工具->扩展程序->勾选开发者模式->加载已解压扩展程序 打开到指定目录确定即可
?
5.git上默认的版本应该很高 下下来直接修改配置即可食用 很好吃的哦
?
6.食用方法不要问我 问我我也不告诉你 呵呵 查看全部
vue-devtools 是一款开发vue 应用时不可或缺的超好用的插件,且它提供了多个浏览器的支持!chrome 的应用市场可以直接搜索下载安装,但是您要是打不开应用市场(你能正常的打开算我输)可以使用如下的方法
1.下载源码 源码地址:https://github.com/vuejs/vue-devtools
?
2.进去制定目录 cnpm i -->npm run build
? ?若使用firefox?cnpm i -->npm run run:firefox
?
3.进入shells 目录 修改mainifest.json 中的persistant为true
?
4.chrome->设置->更多工具->扩展程序->勾选开发者模式->加载已解压扩展程序 打开到指定目录确定即可
?
5.git上默认的版本应该很高 下下来直接修改配置即可食用 很好吃的哦
?
6.食用方法不要问我 问我我也不告诉你 呵呵
本站的VUE 实例中所用到的less 库
CSS/SASS/SCSS/LESS • lopo1983 发表了文章 • 0 个评论 • 1928 次浏览 • 2017-06-26 12:59
下载地址如下?
下载地址如下?
vue 验证码倒计时(jq vs vue)
VUE • lopo1983 发表了文章 • 0 个评论 • 1741 次浏览 • 2017-06-26 12:45
?
JQ版本
?
jssendMsm: function(wait, objectb) {
var time = wait;
if(time == 0) {
$(objectb).removeAttr("disabled");
$(objectb).text("获取验证码");
$(objectb).removeClass('hidden');
$(objectb).next().addClass('hidden');
time = wait;
} else {
$(objectb).attr("disabled", true);
$(objectb).addClass('hidden');
$(objectb).next().removeClass('hidden').text(time + " s 后重发");
time--;
setTimeout(function() {
qdcms.sendMsm(time, objectb);
}, 1000)
}
}
html<a class="btn btn-black" onclick="qdcms.getcode(60,this)">获取验证码</a>
<span class="btn btn-black disabled hidden"></span>css
VBAdmin-UI
?
预览地址:https://www.tfstock.com.cn/?点击注册按钮
?
?
Vue 实现
?
template<template>
<button class="timerout" :disabled="disabled || time > 0" @click='run'>
{{ text }}
</button>
</template>script<script>
export default {
name: 'timerbtn',
props: {
second: {
type: Number,
default: 60
},
disabled: {
type: Boolean,
default: false
}
},
data: function() {
return {
time: 0
}
},
methods: {
run() {
this.time = this.second;
this.timer();
},
timer() {
if(this.time > 0) {
this.time--;
setTimeout(this.timer, 1000);
}
}
},
computed: {
text() {
return this.time > 0 ? this.time + 's 后重新获取' : '点击获取验证码';
}
},
mounted: function() {
}
}
</script>
style
css ?VBAdmin-UI<style lang="less">
@import (reference) "../../../assets/lib/css.less";
.timerout:disabled {
&,
&:hover,
&:focus {
.bgc(@cbla);
color: @cwh;
}
}
</style>
?
下载地址如下: 查看全部
短信验证 现在是市面上比较流行的一种验证方式,最近公司的项目有涉及到故整体如下
?
JQ版本
?
js
sendMsm: function(wait, objectb) {html
var time = wait;
if(time == 0) {
$(objectb).removeAttr("disabled");
$(objectb).text("获取验证码");
$(objectb).removeClass('hidden');
$(objectb).next().addClass('hidden');
time = wait;
} else {
$(objectb).attr("disabled", true);
$(objectb).addClass('hidden');
$(objectb).next().removeClass('hidden').text(time + " s 后重发");
time--;
setTimeout(function() {
qdcms.sendMsm(time, objectb);
}, 1000)
}
}
<a class="btn btn-black" onclick="qdcms.getcode(60,this)">获取验证码</a>css
<span class="btn btn-black disabled hidden"></span>
VBAdmin-UI
?
预览地址:https://www.tfstock.com.cn/?点击注册按钮
?
?
Vue 实现
?
template
<template>script
<button class="timerout" :disabled="disabled || time > 0" @click='run'>
{{ text }}
</button>
</template>
<script>
export default {
name: 'timerbtn',
props: {
second: {
type: Number,
default: 60
},
disabled: {
type: Boolean,
default: false
}
},
data: function() {
return {
time: 0
}
},
methods: {
run() {
this.time = this.second;
this.timer();
},
timer() {
if(this.time > 0) {
this.time--;
setTimeout(this.timer, 1000);
}
}
},
computed: {
text() {
return this.time > 0 ? this.time + 's 后重新获取' : '点击获取验证码';
}
},
mounted: function() {
}
}
</script>
style
css ?VBAdmin-UI
<style lang="less">
@import (reference) "../../../assets/lib/css.less";
.timerout:disabled {
&,
&:hover,
&:focus {
.bgc(@cbla);
color: @cwh;
}
}
</style>
?
下载地址如下:
vue项目中引用bootstrap 的方法
VUE • lopo1983 发表了文章 • 0 个评论 • 2215 次浏览 • 2017-06-23 23:22
废话不多说 直接上代码
vue 环境搭建
1 环境搭建?http://bsfans.com/wenda/?/article/53
2 Vue-cli 打包?http://bsfans.com/wenda/?/article/54
?
build>webpack.base.conf.jsvar webpack=require('webpack');module.exports里面加入plugins: [
new webpack.ProvidePlugin({
$:"jquery",
jQuery:"jquery",
"windows.jQuery":"jquery"
})
]main.js ?全局引入JQ
(其实这里你应该拒绝的 但是不排除一下吧下改变不了习惯的 )
import $ from 'jquery'
开始引入bootstrap
?
build>webpack.base.conf.js
?alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'assets': path.resolve(__dirname, '../src/assets'),
'jquery': "jquery/src/jquery"
} main.jsimport './assets/css/bootstrap.min.css'
import './assets/js/bootstrap.min'
?
已经打算暂时不使用jq 全心投入mvvm的同学请取消相关jq的配置即可 查看全部
vue 和 bootstrap 作为前端中 js 和css 框架中的佼佼者 二者结合肯定能蹦出不一样的火花!!
废话不多说 直接上代码
vue 环境搭建
1 环境搭建?http://bsfans.com/wenda/?/article/53
2 Vue-cli 打包?http://bsfans.com/wenda/?/article/54
?
build>webpack.base.conf.js
var webpack=require('webpack');module.exports里面加入
plugins: [main.js ?全局引入JQ
new webpack.ProvidePlugin({
$:"jquery",
jQuery:"jquery",
"windows.jQuery":"jquery"
})
]
(其实这里你应该拒绝的 但是不排除一下吧下改变不了习惯的 )
import $ from 'jquery'
开始引入bootstrap
?
build>webpack.base.conf.js
?
alias: {main.js
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'assets': path.resolve(__dirname, '../src/assets'),
'jquery': "jquery/src/jquery"
}
import './assets/css/bootstrap.min.css'
import './assets/js/bootstrap.min'
?
已经打算暂时不使用jq 全心投入mvvm的同学请取消相关jq的配置即可
window.open 被拦截 解决方案
VUE • lopo1983 发表了文章 • 0 个评论 • 2273 次浏览 • 2017-06-23 22:49
网上搜了下 找了一个可行的方案?surePay() {
this.showcontent = true;
let newTab=window.open('about:blank');
api.pay(this.refsend.type,this.refsend.money).then(response => {
if(response.success&&response.data) {
newTab.location.href = 'http://'+response.data
} else {
window.alert("非法操作");
}
});
} 查看全部
网上搜了下 找了一个可行的方案?
surePay() {
this.showcontent = true;
let newTab=window.open('about:blank');
api.pay(this.refsend.type,this.refsend.money).then(response => {
if(response.success&&response.data) {
newTab.location.href = 'http://'+response.data
} else {
window.alert("非法操作");
}
});
}