跨域问题

跨域问题

问题一:在django中配置了跨域,在vue中还需要配置跨域吗



INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'oAuth.apps.OauthConfig',
    'rest_framework',
    'rest_framework_simplejwt',
    'corsheaders',
]
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# 跨域配置
# - 允许携带cookie
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
# 白名单
CORS_ORIGIN_WHITELIST = (
    'http://127.0.0.1:9528',
    'http://localhost:9528',
)


urls.py
from django.contrib import admin
from django.urls import path
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/login/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
]

https://img1.sycdn.imooc.com/climg/628c88d909a9985b14090929.jpg


用配置的API去访问,没有取到对应的信息


# 端口号换为8000


https://img1.sycdn.imooc.com/climg/628c890609571dd514160871.jpg


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2022-05-24 16:15:55

同学,你好!

1、在django中配置了跨域,在vue中就不需要配置了

2、同学需要看下vue项目中配置的url是get请求还是post请求

https://img1.sycdn.imooc.com//climg/628c938b09cf6d4e06900105.jpg

同学看下是否有对应的用户,admin用户是否存在

https://img1.sycdn.imooc.com//climg/628c93d3096adccd11431009.jpg

祝学习愉快!

  • 提问者 易动互推 #1
    那是故意把参数填错的,vue是post请求,跨域之后,同样的参数,但是结果是不一样的,404错误
    2022-05-24 16:18:33
  • 好帮手慕美 回复 提问者 易动互推 #2

    同学,你好!同学是在django中配置的跨域还是在vue中配置的?

    同学可以在浏览器中进行测试,请求http://localhost:8080/时会发送异步post请求,是可以显示相应的数据的

    https://img1.sycdn.imooc.com//climg/628c9c440908240616320330.jpg

    https://img1.sycdn.imooc.com//climg/628c9ba909f310ef21700980.jpg


    祝学习愉快!

    2022-05-24 16:50:27
  • 提问者 易动互推 #3
    在django跨域,vue没有跨域,我白名单配置的端口不是8080,而是9528,访问9528端口api显示404,访问django端口当然是正常的
    2022-05-24 16:58:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师