Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >印前检查请求不允许重定向

印前检查请求不允许重定向
EN

Stack Overflow用户
提问于 2018-11-08 19:43:53
回答 3查看 32.7K关注 0票数 10

在尝试使用rest api时,我遇到了这样的问题:“CORS策略阻止了对来自源'https://kollektivet.app‘的'https://kollektivet.app:8082/api/login/’fetch的访问:对印前检查请求的响应没有通过访问控制检查:不允许对印前检查请求进行重定向。”

Picture of response when trying to fetch

当我尝试我正在使用的任何rest api时,就会发生这种情况。根据我所读到的,这个错误意味着我正在尝试重定向,但我不是。

后端是Django,如下所示:

代码语言:javascript
运行
AI代码解释
复制
    @csrf_exempt
@api_view(["POST"])
@permission_classes((AllowAny,))
def register(request,):
        password = request.data.get("password", "")
        email = request.data.get("email", "")
        if not email and not password and not email:
            return Response(
                data={
                    "message": "username, password and email is required to register a user"
                },
                status=status.HTTP_400_BAD_REQUEST
            )
        new_user = User.objects.create_user(
            email=email, password=password
        )
        return Response(status=status.HTTP_201_CREATED)

前端在react中,看起来像这样:

代码语言:javascript
运行
AI代码解释
复制
createUser(event) {
        event.preventDefault();

        let data = {
            name: this.state.name,
            password: this.state.password,
            repeatPassword: this.state.repeatPassword,
            email: this.state.email
        };

        if (this.state.name !== '' && this.state.password !== '' && this.state.email !== '' && this.checkPasswords()) {
            console.log('name', this.state.name, 'password ', this.state.password, 'email ', this.state.email);
                fetch("https://kollektivet.app:8082/api/register/", {
                    method: 'POST',
                    headers: {
                        'Accept': 'application/json',
                        'Content-Type': 'application/json',
                    },
                    mode: "cors",
                    body: JSON.stringify(data)
                })
                    .then(response => response.json())
                    .then(data => console.log(data))
                    .catch(error => console.log(error));
            this.setState({message: "Du er nå registrert! For å aktivere din konto trykk på linken som vi har sendt til deg på epost"});
            this.setState({name: ""});
            this.setState({password: ""});
            this.setState({repeatPassword: ""});
            this.setState({email: ""});

        }
    }

我有这个Django设置文件:

代码语言:javascript
运行
AI代码解释
复制
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

如果这是相关的,我会在apache2上运行它。端口8082也关闭。当它在同一台服务器上时,是否需要打开它?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2018-11-09 00:29:08

您将被重定向至site.site.comapi/register/

你有没有其他的中间件可以做到这一点?也许在Apache配置中?

注意,它是一个Django 301,所以你的浏览器已经缓存了这个响应,并且即使你漫游了导致这个重定向的代码,或者即使你停止了Django的运行,它也会一直重定向到那里。

因此,您还需要清除浏览器中的重定向缓存。

这就是我不喜欢301响应的原因。302要礼貌得多。

票数 4
EN

Stack Overflow用户

发布于 2020-08-07 08:30:12

只是在这里写我的故事,以防有人和我有同样的问题。

基本上,这是一个服务器端问题,所以不需要在前端进行任何更改。

对于此错误消息,它指示OPTIONS请求得到的响应状态代码为301 Moved Permanent“、"307 Temporary Redirect”或"308 Permanent Redirect“。

请使用OPTIONS响应中的'location‘属性检查您请求的URL,看看它们是否相同。

对我来说,问题是我的请求URL是**"https://server.com/getdata"**,但我在服务器上设置的URL是**"https://server.com/getdata/"**

然后服务器给我一个308,用'/‘来纠正它,这适用于POST,GET和HEAD,但不适用于选项。

我用的是flask、flask_restful和flask_cors。

使用这个也可以为我解决这个重定向问题。

代码语言:javascript
运行
AI代码解释
复制
app.url_map.strict_slashes = False
票数 3
EN

Stack Overflow用户

发布于 2019-04-24 17:53:24

我也有过同样的问题,直到我发现重定向是由Django国际化框架引起的,在这个框架中,当实际请求path_to_resource时,所有的url都会得到一个i18n url扩展名,比如/en/path_to_resource。国际化框架通过302重定向实现了这一点。

这个问题的解决方案是将rest-api放在带有i18n_patterns的部分之外。然后,生成的urls.py可能如下所示

代码语言:javascript
运行
AI代码解释
复制
urlpatterns = [
    path('i18n/', include('django.conf.urls.i18n')),
    path('rest/', include(('rest.urls', 'rest'), namespace='rest')),
]

urlpatterns += i18n_patterns(
    path('admin/', admin.site.urls),
    path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),
    path('my_app/', include(('my_app.urls', 'my_app'), namespace='my_app')),
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53215045

复制
相关文章
api网关怎么获取uri路径 api如何处理局部访问失败
api网关是一个新型的互联网安全体系。在新型的微服务架构当中,api网关充当的角色是不能取代的。它可以设置统一的鉴别入口帮助访客连接需求的不同的服务后端。并且提供负载均衡以及熔断限流安全监控等等非常重要的互联网应用功能。下面来了解一下api网关怎么获取uri路径。
用户8715145
2021/12/21
1.4K0
Google JS API 授权 失败
// 初始化OAuth2.0授权 const authenticate = () => { return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/documents https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/driv
拿我格子衫来
2022/01/24
4.1K0
Google JS API 授权 失败
Memos API 获取总条数
*更新:Memos 官方 amount API 已弃用。(Issues #1214)
eallion
2023/03/06
1.1K0
ip地址获取城市api
本接口api数据来源于 纯真ip库 地址 协议 方法 线路 https://api.zets.cn/api/ip https GET 国内 参数 值 可选 说明 data 要查询的ipv4 是 ip
Qicloud
2022/01/27
2.8K0
如何获取云API密钥?
云 API 是腾讯云开放生态的基石。通过云 API,只需少量的代码即可快速操作云产品;在熟练的情况下,使用云 API 完成一些频繁调用的功能可以极大提高效率;除此之外,通过 API 可以组合功能,实现更高级的功能,易于自动化, 易于远程调用, 兼容性强,对系统要求低。以下是具体操作步骤:
腾讯云@移动安全
2019/01/18
82.7K42
如何获取云API密钥?
自动获取QQ API源码
创建一个nic.php文件 代码如下 <?php header("Content-type: application/json; charset=utf-8"); $qq = $_GET['qq']
用户8099761
2023/05/11
1.2K0
Django 解决跨域访问API失败问题
https://www.djangoproject.com/download/2.0.13/tarball/
授客
2020/09/22
2.6K0
微信小程序----wx.getLocation(OBJECT) API在iOS关闭本机定位时,获取定位失败
问题 在做一个小程序时,进入首页需要获取用户的当前位置经纬度,然后去服务器查询当前位置周边的网吧。在安卓关闭定位设置时,wx.getLocation(OBJECT) API依然能够获取当前位置的经纬度;但是iOS如果关闭定位设置,wx.getLocation(OBJECT) API就会失败! 解决办法 微信小程序社区解决办法 根据官网解决的实际用法 Page({ onShow(){ // 获取当前地址 wx.getLocation({
Rattenking
2021/02/01
1.4K0
python中用requests获取API参数
不得不说这个第三方是真的好用,之前在写爬虫的时候就已经开始用啦。然后今天在写接口的时候,别人写的文章是用urllib的,但是我想用requests怎么办呢,怎么去兼容它呢,首先来打开中文文档http:
简单、
2018/07/18
2.6K0
安全可靠的短信验证码API,毫秒级反应
短信验证码是一种功能强大的网络安全技术,可以确保网站的真实性和安全性。它的使用非常简单:用户只需要通过他/她的手机发送位编码短信给网站,然后在网站上输入这个验证码,就可以实现一种双重认证的功能,从而让用户登录或注册的操作变得安全可靠。
不是海碗
2023/03/01
1.3K0
安全可靠的短信验证码API,毫秒级反应
金融数据获取的api接口
最近苹果的股价一路疯长,继周四突破万亿美元市值后,周五盘中高点、收盘价双创新高。盘中高点达208.74美元,收盘价报207.99美元,上涨0.29%,创历史收盘新高,市值达10045.76亿美元。
数据小磨坊
2018/08/16
8.2K0
金融数据获取的api接口
获取手机归属地免费API
1.百度免费api http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=15850781443 返回示例 { "resp
用户6493868
2022/03/09
5.1K0
腾讯会议API - 获取REST API & Webhook应用对接信息
购买腾讯会议企业版或者商业版,将自动开通企业 API 接入能力,企业管理员可登录腾讯会议官网(https://meeting.tencent.com/),单击页面右上角【用户中心】,选择左侧菜单栏中的【高级】-【restApi】进入应用创建页面,点击添加应用即可创建密钥对。
liquid
2021/06/24
2.4K0
腾讯会议API - 获取REST API & Webhook应用对接信息
主动发送指令,但是没有反应,日志显示鉴权失败解决办法
这里少了一个空格
快乐的小白
2023/04/06
5460
主动发送指令,但是没有反应,日志显示鉴权失败解决办法
API网关Ocelot 使用Polly 处理部分失败问题
在实现API Gateway过程中,另外一个需要考虑的问题就是部分失败。这个问题发生在分布式系统中当一个服务调用另外一个服务超时或者不可用的情况。API Gateway不应该被阻断并处于无限期等待下游服务的状态。但是,如何处理这种失败依赖于特定的场景和具体服务。如果是产品信息服务无响应,那么API Gateway就应该给客户端返回一个错误。 Ocelot 是一个使用.NET Core平台上的一个API Gateway,最近我在参与这个项目的开发,开发完成第一个就是使用Polly 处理部分失败问题。各位同学可
张善友
2018/01/22
1.3K0
利用alertover发送获取响应失败的通知消息
本人在做接口自动化时候,因为服务器不稳定造成可能的用例失败,但这个失败表象只是在获取响应实体的json对象时为空,在后期排查问题时可能造成困扰,所以特意加了一个获取响应失败的通知,目的就是即使了解到服务器异常。暂时用的是免费的alertover,用了很久,简单可靠是它的优点,后续会加入微信提醒。分享代码,供大家参考。
FunTester
2019/09/10
1.4K0
C/C++ 调用API获取当前时间
#include <string> #include<iostream> #include<windows.h> #include <sstream> using namespace std; string WORDToString(WORD w) {     char tmpbuff[16];     sprintf(tmpbuff,"%d",w);     string res=tmpbuff;     return res; } string getTime() {     string week
王瑞MVP
2022/12/28
6750
抖音背景音乐获取API
有时候看到好看的抖音,听到喜欢听的背景音乐但音乐却没有在音乐软件上架怎么办?下面代码直接实现。
qiangzai
2021/12/21
2K0
抖音背景音乐获取API
Akismet插件获取key API的方法
作者:matrix 被围观: 2,308 次 发布时间:2011-09-25 分类:Wordpress 兼容并蓄 | 2 条评论 »
HHTjim 部落格
2022/09/26
6990
Akismet插件获取key API的方法
用API获取Bigone历史成交记录
Bigone中查看历史交易的功能并不友好,只能按时间范围查询,如果一笔订单分为许多次成交,界面里就列出多少条,而且还混杂着其它币种,想查清楚自己在哪个价格卖出多少,又在哪个价格买入了多少,只能手工一条一条地统计。看来bigone的程序员小哥自己肯定不炒币。
申龙斌
2018/07/27
7120
用API获取Bigone历史成交记录

相似问题

反应本地获取失败

11

反应本地API获取

23

反应componentDidMount获取api

20

获取API失败

141

SwiftUI: API获取失败

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档