SilverLight跨域访问及其常用的几种解决方法
今天在做silverlight访问JSon数据的时候老是出现错误,才发现是跨域的问题,因此将这方面的内容整理一些,列了出来
SilverLight 出于对安全性的考虑默认情况下对URL的访问进行了严格的限制,只允许访问同一子域下的URL资源。
下表列出了Silverlight 2.0 中 URL 访问规则:
WebClient对象 | Media、images、ASX | XAML 文件、Font 文件 | 流媒体 | |
允许的协议 | HTTP, HTTPS | HTTP, HTTPS, FILE | HTTP, HTTPS, FILE | HTTP |
跨协议访问 | 不允许 | 不允许 | 不允许 | 不允许来自HTTPS的访问 |
跨Web域访问 | 不允许 | 如果不是来自HTTPS则允许 | 不允许 | 允许 |
跨安全区域访问(Windows) | 不允许 | 不允许 | 不允许 | 不允许 |
跨安全区域访问(Macintosh) | 不允许 | 允许 | 不允许 | 允许 |
允许重定向 | 同域允许 | 允许 | 同域允许 | 不允许 |
如果WCF与SilverLight Web不是在同一站点,那么我们就要在被访问端的根域放上两个XML文件clientaccesspolicy.xml,crossdomain.xml
如果要通过WebClinet访问另一站点的资源,那么需要在被访问站点放上域访问策略xml文件,不然在Complete事件里面的事件参数报告空对象引用。
clientaccesspolicy.xml文件格式如何,切忌最好要将编码设置为utf-8,否则极易出错
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
crossdomain.xml文件格式
crossdomain.xml的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。下边是两个例子:
程序代码
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="http://www.lishewen.com.cn/" />
<allow-access-from domain="*.lishewen.com.cn" />
<allow-access-from domain="222.217.221.16" />
</cross-domain-policy>
程序代码
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
第二个例子允许任何域的访问。对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中!
如:http://bbs.lishewen.com.cn/crossdomain.xml
在这我也弄了个Silverlight的例子来测试
http://silverlight.lishewen.net.cn/SyndicationFeedReader/
关于clientaccesspolicy.xml,crossdomain.xml的具体说明,请大家参看MSDN http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx
文章整理资料来源于:http://www.cnblogs.com/format/articles/1282203.html
转载于:https://www.cnblogs.com/deng02/archive/2010/02/03/1663090.html
SilverLight跨域访问及其常用的几种解决方法相关推荐
- Linux忘记密码常用的几种解决方法
Linux忘记密码常用的几种解决方法 参考文章: (1)Linux忘记密码常用的几种解决方法 (2)https://www.cnblogs.com/vurtne-lu/p/6550590.html 备 ...
- authorization 传 就跨域_跨域访问接口上传图片出现options请求问题解决方法
1.首先因为服务器端会先发送一个option请求到后台 在后台返回一个post给页面 页面在处理post请求给接口 2.先写一个过滤器, 我们自己定义一个过滤器 package com.adtime ...
- jsonp 跨域接收值接不到的解决方法
(1) 传递参数的时候需要加?jsoncallback=? var url="<?php echo C('url_zhiku')?>"; $.ajax({ type : ...
- php访问参数错误,提示“无法访问参数错误”的4种解决方法
直接拔下usb设备而不是点击弹出.直接拔下usb设备会损坏甚至破坏扇区,是导致usb设备参数错误的原因之一.切记尽量使用"安全弹出usb"功能. usb接口问题.usb接口是电脑和 ...
- (tomcat访问不了的两种解决方法)Bad Request(Invalid Hostname)
显示这个页面的时候一般有几中解决方法: 第一种就是如下图所示的方法: 具体步骤是: 1.也就是左下角win的"运行"中输入cmd进入doc窗口中 2.输入代码:netstat -a ...
- file_get_contents 访问 ssl 错误的两种解决方法
转自博客园https://www.cnblogs.com/devcjq/articles/9250800.html 第一种,也是最常见的,参考:https://jingyan.baidu.com/ar ...
- html的页面怎样直接跨域访问,【HTML】iframe跨域访问问题
概述 本地同一浏览器访问本地HTML文件和访问服务器端HTML文件,本地Iframe没有自适应高度,而服务器端的Ifrane自适应了高度. 1.问题重现: Chrome 版本 41.0.2272.10 ...
- Ajax跨域访问Tomcat服务器
在学习jQuery的时候进行到AJax时,需要与服务器进行交互练习.我毫不犹豫的打开了我的Tomcat服务器运行起来,并使用普通的ajax方法访问运行中的服务器网址的时候,发现 XMLHttpRequ ...
- Silverlight 2 跨域访问控件与WebService的资料整理
跨域访问控件: In other words, a page retrieved from somehost containing a Silverlight object tag with sour ...
- AJAX跨域访问解决方案
Case I. Web代理的方式 (on Server A) 即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面,由该页面代替用户页面完成交互,从而返回合适的结果.此方案可以解决 ...
最新文章
- 计算机编程语言python-2018年计算机编程语言排名: Python语言排名第一
- 张志华 机器学习 两门课程正确顺序及视频连接
- 第一章 面向对象编程
- MySQL 5.7建表时date类型提示默认值类型错误的问题处理
- android edittext seterror,EditText之setError方法一二
- Spring事务“套路”面试
- 面向对象重写(override)与重载(overload)区别
- 这是一个成长差异化的时代
- 使用create-react-app模板模仿12306app
- 英特尓祭出开挖数据价值的“六脉神剑”!
- 程序员,有什么资格去谈佛系?
- 搭建 Sql Server 2008 R2 Failover Cluster
- arduino惊喜盒子
- 用c语言做记忆测试小游戏,用C语言实现简单小游戏
- 计算机网申兴趣爱好怎么写,网申个人爱好如何填写?
- 去哪儿网qan参数加密(手机端)
- typeC PD是什么含义
- centos离线安装fastdfs
- 使用JabRef在WORD中自动引用参考文献的方法
- 华为首超苹果,iPhone 风光已不再?百度资讯搜索来源调整;自动驾驶激光雷达厂商Velodyne筹备上市;...