因此,我正在获取一些数据的终点。我从Postman那里获取数据没有问题。当我直接从IDE中获取数据时,我也没有问题,所以我知道我的代码有效。
但是,当我使用按钮从浏览器中调用同一段代码时,会出现错误
404 NOT FOUND
Access to fetch at 'https://................' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
在您对我大喊大叫并指出与该问题有关的许多话题之前,让我告诉您,没有一个修复程序有效。
的建议将其添加到我的代码中const proxyurl = "https://cors-anywhere.herokuapp.com/";
fetch(proxyurl + url)
当我在任何地方使用cors时,只要继续加载而不会超时或其他任何事情,我都不会得到任何回应。
我的管理员不愿意对服务器进行任何更改以确保安全性,他说我仍然应该能够获取数据,因为可以使用邮递员来完成
这是代码
async function getUserAsync(email){
const proxyurl = "https://cors-anywhere.herokuapp.com/";
const url = `**************************?email=${email}`
const resp = await fetch( url,{
method:'GET',
headers: new Headers({
'Authorization': `Basic ${base64.encode("****" + ":" + "***")}`,
'Content-Type': 'application/json'
}),
})
let data = await resp.json();
return data;
}
getUserAsync(email")
.then(resp =>{ ...
答案 0 :(得分:-1)
不幸的是,仅仅因为它可以在# views.py
def register_view(request):
form = RegisterForm(request.POST or None)
if form.is_valid():
user = form.save() # <--- ! don't use commit=False here
password = form.cleaned_data.get('password1')
new_group_name = form.cleaned_data['new_group_name']
new_group, created = Group.objects.update_or_create(name=new_group_name)
user.groups.add(Group.objects.get(name=new_group_name)
user.save()
new_user = authenticate(username=user.username, password=password)
login(request, new_user)
return redirect('home')
return render(request, 'accounts/form.html', {'form': form, 'title': 'Üye Ol'}
上运行并不意味着它可以在Postman
(我猜您正在使用的浏览器)上运行。
浏览器本身正在阻止请求,因为它希望在响应中看到Chrome
标头。如果不采取此步骤,浏览器将无法通过。您可能会发现其他一些浏览器将没有此要求,并且该请求将起作用。
您还可以通过插件或更改设置以允许没有Allow origin
标头的请求来更改特定的Chrome浏览器。但是Chrome的所有其他普通用户仍然会遇到问题。
我建议与您的管理员进行更深入的讨论。
答案 1 :(得分:-1)
浏览器会进行印前检查,而邮递员不会这样做。 https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request