栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用跨域资源共享的跨域POST查询不会获取任何数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用跨域资源共享的跨域POST查询不会获取任何数据

好的,所以我相信正确的做法是这样的:

if request.method == "POST":    response = HttpResponse(simplejson.dumps(data),mimetype='application/json')    response['Access-Control-Allow-Origin'] = "*"    return responseelif request.method == "OPTIONS":    response = HttpResponse("")    response['Access-Control-Allow-Origin'] = "*"    response['Access-Control-Allow-Methods'] = "POST, OPTIONS"    response['Access-Control-Allow-Headers'] = "X-Requested-With"    response['Access-Control-Max-Age'] = "1800"else:    return HttpResponseBadRequest()

这是基于我根据预检请求从Mozilla挖掘而来的文档。

所以,我相信会发生的是:

  1. 如果预检缓存中没有任何内容,则将
    OPTIONS
    X-Requested-With
    设置为发送,
    XMLHttpRequest
    我相信这是必要的,以允许Javascript和
    Origin
    标头访问任何内容。
  2. 服务器可以检查该信息。 这就是CORS的安全性 。就我而言,我的回答是“任何来源都可以”和“允许您发送
    X-Requested-With
    东西”。我是说
    OPTIONS
    并且
    POST
    被允许,并且此响应应该被缓存30分钟。
  3. 然后,客户端继续进行先前的POST。
  4. 我最初将响应修改为包括
    Allow-Methods
    Allow-Headers
    但是根据上面链接的文档中的交流,这不是必需的。这很有意义,访问检查已经完成。
  5. 我相信那会发生什么是这里描述的资源共享检查。基本上,一旦提出要求,浏览器就会再次检查该
    Allow-Origin
    字段的有效性,例如
    POST
    。如果通过,则客户端可以访问数据,否则,请求已经完成,但浏览器拒绝实际的客户端应用程序(Javascript)访问该数据。

我认为这是对正在发生的事情的正确总结,无论如何它似乎都起作用。如果我不对,请大喊。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号