1

我在这个愚蠢的小问题上浪费了一整天!

django-rest-framework在前端使用我的api和backbone.js。

添加选项时,我无法向服务器发出任何请求contentType

这是我正在尝试做的一个简单示例:

$.ajax
    url:"http://127.0.0.1:8080/foo/"
    type:"POST"
    data: '{"e":"e"}'
    contentType: "application/json"

OPTIONS 失败并且 POST 永远不会发送。

选项请求标头:

Access-Control-Request-Headers:accept, origin, content-type
Access-Control-Request-Method:POST
Origin:http://localhost:8000

现在我不知道为什么 OPTIONS 会失败。我用的是django的corsheaders app,设置如下:

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_HEADERS = (
    'x-requested-with',
    'content-type',
    'accept',
    'origin',
    'authorization'
)
4

1 回答 1

3
CORS_ORIGIN_ALLOW_ALL = True

如果您正确进行以下设置就足够了

INSTALLED_APPS = (
    *
    'corsheaders',
)

MIDDLEWARE_CLASSES = (
    *
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
)
于 2015-04-09T04:43:11.493 回答