跨域啊跨域

2016/03/20 | 1分钟阅读 | 更新于 2016/03/20

Web端 jQuery Ajax 请求总是遇到跨域的问题,但是开发的时候又不能改一次提交一次。jsonp 也解决不了 post 提交。 话说 Chrome 支持 本地编辑 js 文件,改 Bug 方便多了


为了解决跨域的问题,做了一堆实验 首先错误信息是说没有 Header 里没有 Access-Control-Allow-Origin那就加上,范围选 * 虽然生产环境这样不好但是开发就无所谓了 Ruby Sinatra 的服务器这样做之后就没问题了。

get '/csrf' do
    headers \
        "Access-Control-Allow-Origin"   => "*"
    body "csrf"
end

但是 Django 不够,除了加 header 还需要在配置里把django.middleware.csrf.CsrfViewMiddleware 注释掉或者只对某些方法加上@csrf_exempt

# ...
from django.views.decorators.csrf import csrf_exempt
# ...

# 加 header
def allowCsrf(rsp):
    Origin = "*"
    Methods = "POST, GET, OPTIONS"
    MaxAge = "86400"
    Headers = "*"
    rsp["Access-Control-Allow-Origin"] = Origin
    rsp["Access-Control-Allow-Methods"] = Methods
    rsp["Access-Control-Max-Age"] = MaxAge
    rsp["Access-Control-Allow-Headers"] = Headers
    return rsp


@csrf_exempt # 如果注释掉 csrf中间件就可以不需要 @csrf_exempt 修饰符
def djcsrf(arg):
    response = HttpResponse('djcsrf')
    response = allowCsrf(response)
    return response

以及还可以选择实用现成的 django app 稍微配置一下也行。

© 2026 香蕉引擎故障报告

🌱 Powered by Hugo with theme Dream.

关于

要怎么介绍自己呢,🤔。

很早以前是作为 Web 前端在学习的,但是工作第一年就成为了全干工程师。喜欢尝试各种东西,什么都会一点。

一直很喜欢 Ebiten 游戏引擎 ,特别简洁,用它做过一些小东西,可以查看这个分类 。另外特别推荐这个木鱼 ,是一个相对完整的小玩意儿,包含手搓的一个简单的 UI 框架;支持鼠标和键盘操作;有多语言和主题切换功能;同时支持 Web 端和客户端。它的源代码在 bin16/wooden-fish

主题

网站基于 Hugo,当前使用的是 hugo-theme-dream 主题的修改版 ,根据我的需要,做了一些对 PaperMod 的兼容。

我自己也写过主题 ,但是没有别人写的好看。

正在从我的笔记中往外搬运内容

等待更新:

  • 从《锈湖》中学了些什么东西
  • 我拿 React 写解谜游戏的经过
  • 基于 Pocketbase 的 Pocket Memos
  • 数独!