1、JSONP:JSON With Padding,让网页从别的网域获取信息,也就是跨域获取信息,可以当做是一种“工具”,大多数架构Jquery、EXTjs等都支持。

  由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server2.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

2、WebService,这里使用VS2010自带,不使用WCF。

说明:jsoncallback是针对前台网页的函数声明,不要问web服务方法为什么这个样写,目的是为了跨域调用需要;此方法发布到IIS后直接调用是执行不了,会出现【HttpContext.Current.Request.Params["jsoncallback"].ToString()】这句代码出错返回NullReferenceException。

[WebMethod]

public   void GetSingleInfo(string   x, string y)

{

HttpContext.Current.Response.ContentType   = "application/json;charset=utf-8";

string   jsonCallBackFunName = HttpContext.Current.Request.Params["jsoncallback"].ToString();

//上面代码必须

//中间代码执行自己的业务操作,可返回自己的任意信息(多数据类型)

GetAttrData   gad = new GetAttrData();

string   result = gad.GetSingleInfo(x, y);

//下面代码必须

HttpContext.Current.Response.Write(string.Format("{0}({1})",   jsonCallBackFunName, result));

HttpContext.Current.Response.End();

}

3、WebService的Web.config配置,是服务端,和Web服务一起。

Protocols声明网页Get/Post方式,务必要增加这个节点,在system.web节点内。

<system.web>

<!-- 。。。其他节点 -->

<webServices>

<protocols>

<add name="HttpPost"/>

<add name="HttpGet"/>

</protocols>

</webServices>

</system.web>

4、客户端网页(aspx,asp,jsp,html)跨域调用——Jquery为例

<!—头部引用 -->

<script type="text/javascript" src="/js/jquery-1.4.4.js"></script>

<!-- 解决jquery和其他引入的JS的$存在冲突,可选

<script   type="text/javascript">var JQ=$;</script>

-->

<!—在功能执行JS调用Web服务的函数内   -->

JQ.ajax({

type: "get",

url: "http://10.0.0.29/TheDimDataService/GetDataString.asmx/GetSingleInfo?jsoncallback=?",

dataType: "jsonp",

jsonp: "jsoncallback",

data: {x:xv,y:yv},  //传输的数据

success: function (result){},  //得到调用服务结果

error:OnError

});

  参考

  [1] JSONP之百度百科

  另WCF Ajax、Jquery跨域访问点开见此。

JS-JQuery(JSONP)调用WebService跨域若干技术点的更多相关文章

  1. 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据

    1:跨域请求handler一般处理程序 using System; using System.Collections.Generic; using System.Web; using System.W ...

  2. ajax调用webservice 跨域问题

    用js或者jquery跨域调用接口时 对方的接口需要做jsonp处理,你的ajax jsonp调用才可以 egg 接口中已经做了jsonp处理,所以可以跨域调用 //$.ajax({ // url: ...

  3. Sliverlight调用WebService跨域问题解决

    在SilverlightApplication正常添加webservice(承载网站中建webservice,这样就不存在跨域问题了,即域名一样如:localhost:4676) http://loc ...

  4. ajax 调用webservice 跨域问题

    注意两点 1. 在webservice的config中加入这段位置 (注意不是调用webservice的webconfig中加入) <system.webServer>     <! ...

  5. silverlight调用webservice跨域

    下载下面的任何文件放在webservice的根目录下 http://files.cnblogs.com/files/jichunhu/crossdomain.xml http://files.cnbl ...

  6. JS、JQuery和ExtJs的跨域处理

    1.什么是跨域?跨域,JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a. ...

  7. 利用jquery的ajax实现跨域,内部其实是jsonp协议了,不是XHRhttp协议

    一.同源策略 要理解跨域,先要了解一下“同源策略”.所谓同源是指,域名,协议,端口相同.所谓“同源策略“,简单的说就是基于安全考虑,当前域不能访问其他域的东西. 一些常见的是否同源示例可参照下表: 在 ...

  8. jsonp与cors跨域的一些理解(转)

    CORS其实出现时间不短了,它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源.而这种访问是被同源策略所禁止的. ...

  9. 通过JSONP实现完美跨域

    通过JSONP实现完美跨域 三水清 2010-06-11 20:17:47 以前我经常在博客说JSONP,例如我的WordPress天气插件就是通过JSONP来调用的天气数据,今天就说说通过JSONP ...

随机推荐

  1. 使用Linux碎解一

    一.安装VMwarestation. 二.安装Linux系统(这里是CentOS7) 步骤: #==========================part1===================== ...

  2. List<Object> to JSONArray一

    package com.beijxing.TestMain; import java.util.ArrayList; import java.util.List; import com.beijxin ...

  3. Struts2 的 值栈和ActionContext

    1.ValueStack 和 ActionContext 的关系与区别: -- 相同点:它们都是在一次HTTP请求的范围内使用的,它们的生命周期都是一次请求 -- 不同点:ValueStack 分为对 ...

  4. SecureCRT和SecureFx设置中文乱码

    SecureCRT和SecureFx设置中文乱码 SecureCRT和SecureFx连接服务器时中文显示乱码,找了好多资料好久都没整出来,后来整出来了,因此把个人的解决办法提供出来,已变帮助更多的人 ...

  5. hdu 1398 Square Coins (母函数)

    Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  6. linux提取指定字符的行列并生成新文件(awk命令)

    如图所示,命名为file文件的表头有BP.A1.TEST等 假如想提取含有"ADD"的行和该行对应列的"BP"和"P"值,则需要用到以下命令 ...

  7. RedHat 6.7 Enterprise x64环境下使用RHCS部署Oracle 11g R2双机双实例HA

     环境 软硬件环境 硬件环境: 浪潮英信服务器NF570M3两台,华为OceanStor 18500存储一台,以太网交换机两台,光纤交换机两台. 软件环境: 操作系统:Redhat Enterpris ...

  8. 阅读笔记Multi-task Learning for Stock Selection [NIPS1996]

    Multi-task Learning for Stock Selection  Joumana Ghosn and Yoshua Bengio 摘要 用人工神经网络预测未来回报以便于做出对应的金融决 ...

  9. es6之set和map

    1.set ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值,set本身就是构造函数,所以可以通过new的方式来创建对象 // 例一 可以做数组去重用 var set ...

  10. 从tomcat启动到springIoC容器初始化(编辑中)

    tomcat的启动一般是从startup.bat/startup.sh开始,然后启动catalina.bat/catalina.sh,然后启动bootstrap.jar包 那么它们启动的时候都做了哪些 ...