Sliverlight调用WebService跨域问题解决
在SilverlightApplication正常添加webservice(承载网站中建webservice,这样就不存在跨域问题了,即域名一样如:localhost:4676)
http://localhost:4676/Service1.svc (不用管是wcf,amxl,或是java的接口)
xmal.cs中
{
InitializeComponent();
ServiceReference1.bizservicePortTypeClient bt = new ServiceReference1.bizservicePortTypeClient();
bt.AddCompleted+=new EventHandler<ServiceReference1.AddCompletedEventArgs>(bt_AddCompleted);//注册方法获取返回值
bt.AddAsync(1, 99);//调用webservice
}
public void bt_AddCompleted (Object sender,ServiceReference1.AddCompletedEventArgs e)
{
this.textBlock1.Text=""+e.Result;
}
然后执行http://localhost:4676/SilverlightApplication4TestPage.aspx
但是如果引用其他地方的服务就存在跨域问题了,因为跨域了,所以出现下面
尝试向 URI“http://localhost:8081/Service1.svc”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。
解决办法( 自己有服务端的控制权限)加了2ge文件:
如果没用,那就要检查文件是否写错了,我犯过这种错误
如:http://localhost:8082/clientaccesspolicy.xml 都能识别为xml,然后找问题找了2天,最后发现是文件出错了(文件内容跟文件名都正确),而且我还另存了改为utf-8格式还是不行,最后在网上找了个源码,把这个文件覆盖了,就一切正常了,至今我也不知道是哪里错了(这2个内容都是网上找的,然后 copy过来的)
在webservie中的根目录加入 下面这2个文件(其实是先找第一个,只要有第一个就可以了,找到第一个第二个就不用了)
clientaccesspolicy.xml
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-header="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
crossdomain.xml
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
2,如果没有服务端权限呢(即无法再服务端目录加上2个xml)?其实也很简单在上面就能找到解决办法了
在承载网站中建webservice,然后这个webservice中调用要调用的webservice
ps: <allow-from http-request-header="*"> 改为<allow-from http-request-headers="*">
本文来自ytmf007的博客,原文地址:http://blog.csdn.net/ytmf007/article/details/7597103
Sliverlight调用WebService跨域问题解决的更多相关文章
- JS-JQuery(JSONP)调用WebService跨域若干技术点
1.JSONP:JSON With Padding,让网页从别的网域获取信息,也就是跨域获取信息,可以当做是一种“工具”,大多数架构Jquery.EXTjs等都支持. 由于同源策略,一般来说位于 se ...
- ajax调用webservice 跨域问题
用js或者jquery跨域调用接口时 对方的接口需要做jsonp处理,你的ajax jsonp调用才可以 egg 接口中已经做了jsonp处理,所以可以跨域调用 //$.ajax({ // url: ...
- ajax 调用webservice 跨域问题
注意两点 1. 在webservice的config中加入这段位置 (注意不是调用webservice的webconfig中加入) <system.webServer> <! ...
- silverlight调用webservice跨域
下载下面的任何文件放在webservice的根目录下 http://files.cnblogs.com/files/jichunhu/crossdomain.xml http://files.cnbl ...
- Vue项目在开发环境跨域和生成环境部署跨域问题解决
一.在dev环境下的跨域问题解决1.项目使用的是axios请求网络,将baseUrl修改为/api (这里是使用webpack提供的代理功能将/api代理成目标接口host) axios.defaul ...
- django 前端请求跨域问题解决
django 前端请求跨域问题解决 笔者之前在做django-restful-api开发的时候,在前端请求页面发送请求的时候直接出现301,域名重定向的问题,经过一番查阅资料,终于得到了非常完美的解决 ...
- FastAdmin 关于跨域问题解决
FastAdmin 关于跨域问题解决 之前很久之前收集到社区的问题. https://forum.fastadmin.net/thread/277 今天又有人问到,无法打开,估计是网络问题. 以下为完 ...
- vue跨域问题解决(生产环境)
vue跨域问题解决(使用webpack打包的) 配置代理:(config下index.js文件) module.exports = { dev: { env: require('./dev.env') ...
- 20191204-使用nginx解决ajax测试调用接口跨域问题
问题描述 之前要测试一个http的接口,在postman中测试成功,但使用ajax调用却跨域.于是通过使用ngin反向代理的方式来解决ajax调用跨域问题 测试页面的内容 <html> & ...
随机推荐
- Android开发 静态static类与static方法持有Context是否导致内存泄露的疑问
简述 在Android开发的过程中,难免会使用单例模式或者静态方法工具类.我们会让它们持有一些外部的Context或者View一般有以下几种情况: 单例模式,类的全局变量持有Context 或 Vie ...
- TinkPHP框架学习-04命名空间
1-----命名空间 2-----调用其他控制器的方法 3-----U()函数 一命名空间 ①看做是虚拟目录 --ThinkPHP/Library 初始命名空间 --在Library文件夹下的所有文件 ...
- 用es5原生模仿-es6Promise异步处理
用es5原生模仿-es6Promise异步处理,不过在处理异常的时候有点小bug不是很完美,不过多级then 是没问题的和resolve, rejec 正常调用和异常处理调用是没问题的.本帖属于原创 ...
- 43_redux_counter应用_使用redux调试用具
1.要在chrome中安装插件 redux-devtools_2_12_1.crx 2.在开发工具注入 npm install --save-dev redux-devtools-extension ...
- Juc中Atomic原子类总结
1 Atomic原子类介绍 2 基本类型原子类 3 数组类型原子类 4 引用类型原子类 5 对象的属性修改类型原子类
- docker 启动报错 WARNING: IPv4 forwarding is disabled. Networking will not work.
解决办法: # vi /etc/sysctl.conf 或者 # vi /usr/lib/sysctl.d/00-system.conf 添加如下代码: net.ipv4.ip_forward ...
- POI--各种样式的XSSFCellStyle的生成
//背景色.フォント色.枠線より各種XSSFCellStyleの作成して.cellStyleMapに保存する private HashMap<String, XSSFCellStyle> ...
- 关于js-angularJS的路由传参
使用angular进行网页跳转传参 app.controller('payController', function ($scope, $location, payService) { 注明$loca ...
- mybatis查询如何返回List<Map>类型数据
只要设定resultType而不设定resultMap就可以了: <selectid="selectByPage"parameterType="java.uti ...
- Homework:小写字母转大写字母
// 功能: // 从键盘上输入单个字符 // 如果是小写字母,则转换成大写后输出 // 否则,什么也不做,原样输出 #include <stdio.h> int main() { cha ...