跨域,通过Apache本地服务器调试运行

mui.ajax(URL,{
        dataType:'json',
        type:'get',
        success:function(data){
            if(data.Success){
            }
        },
        error:function(xhr,type,errorThrown){
        }
    });

以上是一个mui框架内的代码片段,做到能在浏览器直接运行即可,当然URL是跨域了。
跨域是指两个页面之间 二级域名、端口(得知http 80 , https 443)、协议(直观的 http , https) 只要有一个不相同即为跨域。

解决跨域的方法有很多,但是需要服务器的配合。

  1. Apache下载安装
    个人只是用于做本地测试,恰巧学习了Apache的一些知识,
    先下载Apache,最新版Apache2.4。
    下载之后解压,cmd到Apache的bin目录下,安装代码,httpd.exe -k install
    安装之后,启动通过service.msc 找到Apache,或者到Apache bin目录下找到ApacheMonitor.exe,运行Apache管理器,启动。
    输入ServerName的配置属性,启动会显示htdocs目录下的index.html。

  2. 关于httpd.conf文件的配置
    httpd.conf文件中有关于Apache的模块,路径,端口,服务器,包含文件等等设置,目前只接触到这几个,
    ‘#’是注释
    模块:LoadModule ,东西不少,看资料,反向代理,负载均衡之类的配置
    Apache文件路径:采用相对布局,可自行更改。
    工程路径: DocumentRoot , 配置为你页面文件所在位置,默认先找index文件。
    端口:寻找Listen 80 , 则是默认端口号,可自行更改,不能冲突。
    服务器地址:ServerName 默认 localhost 80 。
    包含文件:Include属性。
    Directory 地址为DocumentRoot 配置
    AllowOverride All
    被下面这个坑了一次,配置成2.2的不能启动Apache。

Require all granted(注意Apache2.4是这个)
Order deny,allow
Allow from all(2.2是这两个)
  1. 关于httpd-vhosts.conf文件的配置
    Include conf/extra/httpd-vhosts.conf取消注释,上面写着Virtual hosts(虚拟主机)。
    取消以下httpd.conf的注释,
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so

配置反向代理


    #反向代理设置
    ServerName localhost
DocumentRoot "E:\Documents\xxx"

    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted(同理2.2看上面)

    ProxyRequests Off
    
      Require all granted
    
      #可配置多个
     ProxyPass        /project   http://ip_address/project
     ProxyPass        /project   http://ip_address/project
     #访问的时候就不能用全URL了,从/project/开始,前面的http://ip_address不要。相当于识别到路径中有/project时,会转到http://ip_address/project访问。

水平有限,欢迎交流,转载请注明出处,谢谢。

你可能感兴趣的:(工作)