我想知道是否有可能提取传统Ajax所能做的所有事情? 因为我在使用express进行简单的登录身份验证时遇到问题。如果用户名/密码不正确,我想发送诸如“登录错误”的响应,或者如果两者均正确,则将用户重定向到首页,而不刷新页面。
我了解您可以在AJAX中执行此操作,但是否也可以在获取中执行此操作?
我尝试使用express js并通过json发送响应,但是我不知道如何在不刷新页面的情况下处理响应。
我试图在快递服务器中这样做
def get_proxy(proxy_list):
'''
(list) -> dict
Given a proxy list <proxy_list>, a proxy is selected and returned.
'''
# Choose a random proxy
proxy = random.choice(proxy_list)
# Split up the proxy
proxy_parts = proxy.split(':')
# Set up the proxy to be used
try:
proxies = {
"http": "http://" + proxy_parts[2] + ":" + proxy_parts[3] + "@" +\
proxy_parts[0] + ":" + proxy_parts[1],
"https": "https://" + proxy_parts[2] + ":" + proxy_parts[3] + "@" +\
proxy_parts[0] + ":" + proxy_parts[1]
}
except:
proxies = {
"http": str(proxy),
"https": str(proxy)
}
# Return the proxy
return proxies
在客户端,特别是在登录页面上,我有这个可处理信息提交的javascript
//if valid
res.json({
isValid: true
})
//if invalid
res.json({
isValid: false
})
答案 0 :(得分:1)
您太亲密了!您已经获取了内容,然后使用response.json
对其进行了解析,因此接下来是.then()。这样,您就可以将JSON对象传递到名为data
的参数中。您需要做的就是检查它是否具有isValid
属性!
fetch('https://localhost:3000/auth', {
method: 'post',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
username,
password
})
})
.then(response => response.json())
.then(data => {
if(data.isValid){
// Do something with a valid user. Redirect or whatever.
} else {
// Here, isValid is not set, or is false.
// Send them packing!
}
}
})
.catch(err => console.error("I died: ", err) );
也请看一下.catch()
块-发生错误时,捕获fetch()
或then()
抛出的错误。因此,您需要为错误添加一个参数,并添加一个函数体来处理该错误。我已经编辑了代码示例以进行演示。
实际上不会在这里运行,但是它的格式很漂亮。