跨域 反向解析

Posted chengdongzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨域 反向解析相关的知识,希望对你有一定的参考价值。

 

跨域

在url必须声明命名空间

app_name = ‘自定义‘
 
在C盘中找到etc文件夹下的hosts文件,进入hosts文件中添加你要添加的域
 
技术图片

 

 让后在黑窗口下指定域名
 例:
python manage.py runserver 80
在命令后面直接指定端口号
 
 
在settings
 
# 定义跨域中间件
‘corsheaders.middleware.CorsMiddleware‘,
 
# 配置跨域范围
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
 
 
 
反向解析
 
定义解析类
 
 
 
# redirect :重定向
from django.shortcuts import render,redirect
from django.http import HttpResponse,HttpResponseRedirect
# 导入类视图
from django.views import View
# 导入反向解析方法
from django.urls import reverse


# 定义类视图
class Test(View):
  def get(self,request):
    # 第一个是命名空间 ,第二个路由命名 使用第二个来控制参数
    # 跳转
    return redirect(reverse(‘myapp:test_name‘,args=(456,)))
    return redirect(reverse(‘myapp:test_name_dict‘,kwargs={‘username‘:666}))

    return HttpResponseRedirect(reverse(‘myapp:test_name‘))
 
    return HttpResponse(‘这里是正向解析‘)


# 定义反向解析类
class TestRev(View):
  def get(self,request,p1):
  print(p1)
  return HttpResponse(‘这里是反向解析‘)


# 定义反向解析类 通过dict传参
class TestRevDict(View):
  def get(self,request,username):
 
    return HttpResponse(‘这里是反向解析124qds‘+username)


# 定义接口返回数据
class ReturnText(View):
  def post(self,request):
    # 接收参数
    username = request.POST.get(‘username‘,‘未收到‘)
    return HttpResponse(‘接收到的是‘+username)
 
 
写解析模板
 
 
<!DOCTYPE html>
{# 加载静态文件#}
{% load static %}


<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>首页</title>
{# 载入js库 #}
<script src="{% static ‘js/jquery-1.12.1.min.js‘ %}"> </script>
<script src="{% static ‘js/axios.js‘ %}"></script>
 
 
 
 
</head>
<body>
  <a href="/test">正向解析</a>

  {# 第一个参数应用名称(命名空间) ,第二个参数自定义命名 #}
  <a href="{% url ‘myapp:test_name‘ 123 %}">反向解析</a>

  <a href="{% url ‘myapp:test_name_dict‘ username=999 %}">反向解析</a>
  <button onclick="send_msg()">发送异步请求</button>

  <script>
 
    function send_msg(){
      let param = new URLSearchParams();
      /  /将参数传递给对象
      param.append(‘username‘,‘jack‘);
 
 
      axios({
        //指定请求地址
        url:‘http://mymac.cn/returntest‘,
        //请求参数
        data:param,
        //请求类型
        method:‘post‘,
        //接口返回值类型
        responseType:‘text‘,

      })

      .then(function(obj){
 
        console.log(obj);
        alert(obj.data);
 
      });

    }
 
 
</script>


</body>
</html>
 
 
 
 
 
 
 
 
 

以上是关于跨域 反向解析的主要内容,如果未能解决你的问题,请参考以下文章

跨域问题 - Nginx反向代理

CORS跨域与Nginx反向代理跨域优劣对比

url的反向解析

nginx配置解析之客户端真实IP的传递

逆向和反向地址解析协议

反向解析