因为浏览器的安全模型,js 是不能跨域的。

解决的方法有以下几种:

1. 使用代理服务转发

2. 目前服务器添加:Access-Control-Allow-Origin

3. 使用jsonp

4. 使用iframe

。。。。。。。

其中使用代理服务器进行转发以及 服务器添加Access-Control-Allow-Origin 是比较方便的。

代理服务器一般选择nginx 或者类似的,可以在网上找到对应的配置。

目的服务器添加Access-Control-Allow-Origin  对于现有的应用时比较方便的,直接在目的服务器中添加对应的信息即可。

例子如下:

public class App1 : System.Web.Services.WebService
{ [WebMethod] public void HelloWorld()
{ Context.Response.ContentType = "application/json";
var text = "{\"name\":\"dalong\"}";
Context.Response.Write(text); Context.Response.End(); }
}

web service 站点的配置如下:

<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" /> <webServices > <protocols > <add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web> </configuration>

IIS 服务器的配置如下:

Access-Control-Allow-Origin : *

对于 web service的方式可能会有其他的错误,需要在此添加以下信息:

Access-Control-Allow-Headers : Origin, X-Requested-With, Content-Type, Accept

上述配置也可以再 web.config 中配置

使用ajax 调用跨域的web  service 如下:

 $.ajax({
type: "GET", url: "http://XXXXXXXXXXX/app.asmx/HelloWorld",
data: null,
dataType: 'json',
success: function (result) {
alert(result.name);
}
});
 <system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
</httpProtocol>
</system.webServer>

希望对大家有帮助。

简单配置IIS 以及web service 实现js跨域的更多相关文章

  1. 利用JS跨域做一个简单的页面访问统计系统

    其实在大部分互联网web产品中,我们通常会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便可以在这些统计系统中看到自己网站页面具体的访问情况.但是有些时候,由于一些特殊情况,我们 ...

  2. 利用JS跨域做一个简单的页面訪问统计系统

    事实上在大部分互联网web产品中,我们一般会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便能够在这些统计系统中看到自己站点页面详细的訪问情况.可是有些时候,因为一些特殊情况,我 ...

  3. js跨域请求jsonp解决方案-最简单的小demo

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  4. 解决js跨域问题

    如何解决js跨域问题 Js跨域问题是web开发人员最常碰到的一个问题之一.所谓js跨域问题,是指在一个域下的页面中通过js访问另一个不同域下 的数据对象,出于安全性考 虑,几乎所有浏览器都不允许这种跨 ...

  5. 如何解决js跨域问题

    Js跨域问题是web开发人员最常碰到的一个问题之一.所谓js跨域问题,是指在一个域下的页面中通过js访问另一个不同域下的数据对象,出于安全性考 虑,几乎所有浏览器都不允许这种跨域访问,这就导致在一些a ...

  6. js跨域那些事

    原文:http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html 什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其 ...

  7. js跨域访问

    什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦.这里把涉及到跨域的一些问题简单地整理一下: 首 ...

  8. 使用Web代理实现Ajax跨域

    目前的工作项目分为前端和后台,双方事先约定接口,之后独立开发.后台每天开发完后在测试服务器上部署,前端连接测试服务器进行数据交互.前端和后台分开的好处是代码不用混在一个工程里一起build,互不干涉. ...

  9. js跨域及解决方法

    什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦.这里把涉及到跨域的一些问题简单地整理一下: 首 ...

随机推荐

  1. 深入分析:Android中app之间的交互(二,使用ComponentName)

    在前一篇相关主题的博文中我们了解了如何使用Action来启动当前应用之外的Activity处理我们的业务逻辑,在本篇笔记中我在简单介绍一下使用ComponentName来与当前应用之外的应用进行交互. ...

  2. BZOJ 1271 秦腾与教学评估

    二分. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  3. 测试题1 IOS面试基础题

    免责声明:答案来自本人,错误之处敬请谅解 1.用变量a写出以下定义 a.一个整型数    int a=5; b.一个指向整型数的指针  int *a; c.一个指向指针的指针,它指向的指针是指向一个整 ...

  4. html释疑

    解析<button>和<input type="button"> 的区别(转) 一.定义和用法 <button> 标签定义的是一个按钮. 在 b ...

  5. 解决CSS小于12px的文字在谷歌浏览器显示问题

    做前端设计的人经常要接触CSS方面的问题,估计有不少人会遇到Chrome谷歌浏览器中CSS设置字体小于12px显示不正常,强创网络在做magento模板过程中就遇到了,起初以为是自己写的CSS的问题, ...

  6. flex+java实现文件的上传

    flex前端代码: <?xml version="1.0" encoding="utf-8"?><s:BorderContainer xmln ...

  7. (实用篇)PHP ftp上传文件操作类

    <?php /** * 作用:FTP操作类( 拷贝.移动.删除文件/创建目录 ) */ class class_ftp { public $off; // 返回操作状态(成功/失败) publi ...

  8. 66. Plus One

    Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...

  9. 修饰符(static、final、abstract)第一篇

    三个修饰符: 一.static: 作用域: 1. 属性 1.1 静态属性不必要创建新对象,可直接用类调用 1.2 其值发生改变,则类中的值也会随之而变并延伸到其他对象中 例子: class Anima ...

  10. 关于SSH整合中对于Hibernate的Session关闭的问题

    在web.xml的Struts2的配置上面加上 <filter> <filter-name>OpenSessionInViewFilter</filter-name> ...