首页

Http访问跨域解决

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

一、跨域科普

跨域,即跨站HTTP请求(Cross-site HTTP request),指发起请求的资源所在域不同于请求指向资源所在域的HTTP请求。

二、如何产生跨域

当使用前后端分离,后端主导的开发方式进行前后端协作开发时,常常有如下情景:

    a、后端开发完毕在服务器上进行部署并给前端API文档。
    b、前端在本地进行开发并向远程服务器上部署的后端发送请求。
    c、在这种开发过程中,如果前端想要一边开发一边测试接口,就需要使用跨域的方式。

三、解决方案

1、JQuery+ajax+jsonp 跨域访问

Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料。

下面给出例子:

html 前端代码:

[html] view plain copy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">    
  2. <html>    
  3. <head>    
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    
  5. <title>Insert title here</title>    
  6. <script type="text/javascript" src="resource/js/jquery-1.7.2.js"></script>    
  7. </head>    
  8. <script type="text/javascript">    
  9. $(function(){       
  10.  /*    
  11.  //简写形式,效果相同    
  12.  $.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",    
  13.          function(data){    
  14.              $("#showcontent").text("Result:"+data.result)    
  15.  });    
  16.  */    
  17.  $.ajax({    
  18.      type : "get",    
  19.      async:false,    
  20.      url : "http://app.example.com/base/json.do?sid=1494&busiId=101",    
  21.      dataType : "jsonp",//数据类型为jsonp    
  22.      jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数    
  23.      success : function(data){    
  24.          $("#showcontent").text("Result:"+data.result)    
  25.      },    
  26.      error:function(){    
  27.          alert('fail');    
  28.      }    
  29.  });     
  30. });    
  31. </script>    
  32. <body>    
  33. <div id="showcontent">Result:</div>    
  34. </body>    
  35. </html>    

服务器端:

[java] view plain copy
  1. import java.io.IOException;    
  2. import java.io.PrintWriter;    
  3. import java.util.HashMap;    
  4. import java.util.Map;    
  5. import javax.servlet.http.HttpServletRequest;    
  6. import javax.servlet.http.HttpServletResponse;    
  7. import net.sf.json.JSONObject;    
  8. import org.springframework.stereotype.Controller;    
  9. import org.springframework.web.bind.annotation.RequestMapping;    
  10.      
  11. @Controller    
  12. public class ExchangeJsonController {    
  13.  @RequestMapping("/base/json.do")    
  14.  public void exchangeJson(HttpServletRequest request,HttpServletResponse response) {    
  15.     try {    
  16.      response.setContentType("text/plain");    
  17.      response.setHeader("Pragma""No-cache");    
  18.      response.setHeader("Cache-Control""no-cache");    
  19.      response.setDateHeader("Expires"0);    
  20.      Map<String,String> map = new HashMap<String,String>();     
  21.      map.put("result""content");    
  22.      PrintWriter out = response.getWriter();         
  23.      JSONObject resultJSON = JSONObject.fromObject(map); //根据需要拼装json    
  24.      String jsonpCallback = request.getParameter("jsonpCallback");//客户端请求参数    
  25.      out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式数据    
  26.      out.flush();    
  27.      out.close();    
  28.    } catch (IOException e) {    
  29.     e.printStackTrace();    
  30.    }    
  31.  }    
  32. }    

2、通过注解的方式允许跨域

在Controller类或其方法上加@CrossOrigin注解,来使之支持跨域。

举例:
[java] view plain copy
  1. @CrossOrigin(origins = "*", maxAge = 3600)  
  2. @RestController  
  3. @RequestMapping("/User")  
  4. public class UserController {  
  5. }  

其中origins为CrossOrigin的默认参数,即跨域来源,*即任何来源,也可以是其他域名。即可以以以下形式:

[java] view plain copy
  1. @CrossOrigin("http://test.com")  
  2. @CrossOrigin(origins="http://test.com",maxAge=3600)  

该注解用于方法上,写法相同,处理时,SpringMVC会对类上标签和方法上标签进行合并。

3、通过配置文件的方式允许跨域

在web.xml中添加如下配置:

[html] view plain copy
  1. <filter-mapping>   
  2.     <filter-name>CorsFilter</filter-name>   
  3.     <url-pattern>/*</url-pattern>   
  4. </filter-mapping>  
使用这个Filter即可让整个服务器全局允许跨域。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


【ionic3】ionic2.x与ionic3.x之间的部分区别

seo达人

在用2.x开发时有的地方的颜色样式是通过添加 color="primary" 属性的形式设置的,但是升级3.x之后这种方式除了一些自带的color属性的组件、标签(eg: )可以生效,其他的都失效了。

学习解析XML(1)

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

什么是xml, xml有什么作用?
XML 是独立于软件和硬件的信息传输工具
  • XML 指可扩展标记语言(EXtensible Markup Language)。
  • XML 是一种很像HTML的标记语言。
  • XML 的设计宗旨是传输数据,而不是显示数据。
  • XML 标签没有被预定义。您需要自行定义标签。
  • XML 被设计为具有自我描述性。
  • XML 是 W3C 的推荐标准。


XML 和 HTML 之间的差异

XML 不是 HTML 的替代。

XML 和 HTML 为不同的目的而设计:

  • XML 被设计用来传输和存储数据,其焦点是数据的内容。
  • HTML 被设计用来显示数据,其焦点是数据的外观。

HTML 旨在显示信息,而 XML 旨在传输信息



xml的用途:

    

XML 把数据从 HTML 分离

XML 简化数据共享

XML 简化数据传输

XML 简化平台变更

XML 使您的数据更有用

XML 用于创建新的互联网语言


<?xml version="1.0" encoding="UTF-8"?> 声明

以及根元素 子元素 以及定义根元素结尾

如例

声明

<?xml version="1.0" encoding="UTF-8"?>

根元素

<note>

子元素

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

定义根元素结尾

命名的规范

所有的 XML 元素都必须有一个关闭标签

XML 标签对大小写敏感、

XML 必须正确嵌套

XML 属性值必须加引号

实体引用




XML 以 LF 存储换行

在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。

在 Unix 和 Mac OSX 中,使用 LF 来存储新行。

在旧的 Mac 系统中,使用 CR 来存储新行。

XML 以 LF 存储换行。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

优秀网页UI设计深度解析

蓝蓝设计的小编

在今天这样一个互联网+时代,绝大多数企业都意识到通过线上资讯来吸引更多的潜在客户是多么的重要。这些潜在客户对你的公司及产品印象的好坏,很大程度上取决于你在网站设计上投入精力的多少。所以花时间构思一个好的网站设计,特别是主页部分的设计非常关键。

小程序复选框-在线预定

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

  1. <view class='header1'>  
  2.   <view class='header'>  
  3.     <view class='header_con flex_between'>  
  4.       <view class='left'>  
  5.         共计{{items.length}}件商品  
  6.       </view>  
  7.       <view class='right flex_end'>  
  8.         <view wx:if="{{!management_good}}" class='flex_center' bindtap='management'>  
  9.           管理  
  10.         </view>  
  11.         <view wx:if="{{management_good}}" class='flex_center' bindtap='finish_management'>  
  12.           完成  
  13.         </view>  
  14.       </view>  
  15.     </view>  
  16.   </view>  
  17. </view>  
  18. <view class='header2'>  
  19.   <view class='header'>  
  20.     <view class='header_con flex_between'>  
  21.       <input value='类目一' disabled='{{title_disabled}}' focus="{{!title_disabled}}">  
  22.       </input>  
  23.       <view class='right flex_end'>  
  24.         <block wx-if="{{title_disabled}}">  
  25.           <image src='../../../image/hotel/delete.png' bindtap='change_classname'></image>  
  26.         </block>  
  27.         <block wx-if="{{!title_disabled}}">  
  28.           <view class='flex_center' bindtap='finish_classname'>  
  29.             完成  
  30.           </view>  
  31.         </block>  
  32.       </view>  
  33.     </view>  
  34.   </view>  
  35. </view>  
  36. <view class='onlinechoose'>  
  37.   <view class='hotel_list flex_center' wx:for="{{items}}" wx:key="items" wx:for-item="i" data-id="{{index}}" bindtap='select'>  
  38.     <view class='list_cons flex_start'>  
  39.       <view wx:if="{{management_good}}" class='lefts'>  
  40.         <block wx-if="{{!i.checked}}">  
  41.           <view class='icon_none'></view>  
  42.         </block>  
  43.         <block wx-if="{{i.checked}}">  
  44.           <icon type="success" size="30" color="red" />  
  45.         </block>  
  46.       </view>  
  47.       <image src='../../../image/hotel/demoimg.jpg'></image>  
  48.       <view class='right'>  
  49.         <view class='name'>  
  50.           {{i.name}}  
  51.         </view>  
  52.         <view class='list1 flex_between'>  
  53.           <view class='left'>  
  54.             <view class='condition1'>  
  55.               16㎡|双人床|含早  
  56.             </view>  
  57.             <view class='condition2'>  
  58.               <block>  
  59.                 间数:10  
  60.               </block>  
  61.               <block>  
  62.                 间数:2  
  63.               </block>  
  64.             </view>  
  65.           </view>  
  66.         </view>  
  67.         <view class='list1 flex_between'>  
  68.           <view class='left'>  
  69.             <view class='condition2'>  
  70.               类目一  
  71.             </view>  
  72.           </view>  
  73.         </view>  
  74.       </view>  
  75.     </view>  
  76.   </view>  
  77. </view>  
  78. <view class='bottom flex_between' wx:if="{{management_good}}">  
  79.   <view class='left flex_start'>  
  80.     <block wx:if="{{select_all}}">  
  81.       <view bindtap='select_none' class='flex_start'>  
  82.         <icon type="success" size="30" color="red" />  
  83.         <view>  
  84.           取消全选  
  85.         </view>  
  86.       </view>  
  87.     </block>  
  88.     <block wx:if="{{!select_all}}">  
  89.       <view bindtap='select_all' class='flex_start'>  
  90.         <view class='select_none'>  
  91.         </view>  
  92.         <view>  
  93.           全选  
  94.         </view>  
  95.       </view>  
  96.     </block>  
  97.   </view>  
  98.   <view class='right flex_end'>  
  99.     <view style='text-align:right'>  
  100.       <view class='all'>  
  101.         共选中{{middlearr.length}}件商品  
  102.       </view>  
  103.     </view>  
  104.     <view bindtap='deleteitem' class='sure'>  
  105.       删除  
  106.     </view>  
  107.   </view>  
  108. </view>  
蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

UI设计教程 质感朋克U盘ui图标教程

蓝蓝设计的小编

介绍一下如何在PS里更好的体现图标的质感,个人觉得,这个教程对于UI学习者来说是非常受用的,特别是UI设计的新手学习者。好了,喜欢的朋友记得给我好评!

UI设计教程!如何提升你的设计水平

蓝蓝设计的小编

最近半年尝试性的收了一个小徒弟,因为他今年毕业,我以为教起来会很顺利,因为他是平面设计专业而且PS软件基础还不错。但是实际上却遇到了不少的问题不少的弯路。我把它们整理了下来,总结了一下。分享给刚入门的Ui设计师们希望能帮到初学UI的你。

前端框架Bootstrap的使用

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里 

1. 下载Bootstrap

下载地址:https://v3.bootcss.com/ 
进入后下载这个标题的Bootstrap 
这里写图片描述 
下载完成后,将所需的css,js复制到工程中即可

2. 拷贝官方的模块文件

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="css/bootstrap.min.css" rel="stylesheet"> </head> <body> <h1>你好,世界!</h1> <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> </body> </html>
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

3. 页面添加组件

图片

  • 下面一个按钮为例:

    • 喜欢的样式
<button type="button" class="btn btn-primary">(首选项)Primary</button>
    
  • 1

这里写图片描述

<div class="btn-group" role="group" aria-label="...">
  <button type="button" class="btn btn-default">Left</button>
  <button type="button" class="btn btn-default">Middle</button>
  <button type="button" class="btn btn-default">Right</button>
</div>
    
  • 1
  • 2
  • 3
  • 4
  • 5

这里写图片描述 
然后将二者结合即可:

<div class="btn-group" role="group" aria-label="...">
  <button type="button" class="btn btn-primary">Left</button>
  <button type="button" class="btn btn-primary">Middle</button>
  <button type="button" class="btn btn-primary">Right</button>
</div>
    
  • 1
  • 2
  • 3
  • 4
  • 5
- 最后的结果如下:
Left Middle Right

这里写图片描述

至此你就可以简单的用前端框架做出美观的界面了!

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

2018年12条移动端用户体验设计趋势

鹤鹤


在移动应用领域,事物正飞速发展。要想在用户体验设计领域获得成功,设计师必须有远见,并为即将到来的新挑战做好准备。

 

为了简化这个任务,我列出了2018年最重要、最有影响力的趋势,而且很有可能远不止如此。



设计流程与产品分析

蓝蓝设计的小编

为什么近期市场上会出现大片的方法论呢?究其原因:是一种坏的学术风气或普通群众的跟风心里导致的。


互联网兴起初期,没有相应的专业或产品设计的学派,大部分设计师的出发点基本围绕「解决问题」的角度来做产品设计。当时唯一的理论点就是现在所谓的「竞品分析」。

日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档