jsonp调用webapi和mvc
webapi代码如下:
public string Get(int id)
{
var callback = HttpContext.Current.Request["callback"];
var u = new User { Name = "AA", Age = id };
var result = new JavaScriptSerializer().Serialize(u);
if (string.IsNullOrWhiteSpace(callback))
return result;
else
{
HttpContext.Current.Response.Write(string.Format("{0}({1})", callback, result));
HttpContext.Current.Response.End();
}
return "";
}
注:这种写法必须要用
HttpContext.Current.Response.Write方式返回,具体原因暂时不知道,如果直接返回,前台会请求成功,但是解析时会报错。
MVC写法如下:
public string Index()
{
var callback = Request["callback"];
return string.Format("{0}({1})", callback, "{\"n\":111}");
}
注:
callback是自定义的回调与jquery保持一致,具体为什么可以了解jsonp原理,也可以通过chrome的network瞅瞅交易的过程 html代码如下:
                $.ajax({
                    type: "get",
                    url: "http://localhost:21931/api/myapi/12311111",
                    dataType: "jsonp",
                    jsonp: "callback",
                    success: function (msg) {
                        jalert(JSON.stringify(msg));
                    },
                    error: function (a, b, c) {
                        jalert("error");
                    }
                });
服务启动后,直接通过浏览器打开页面就可以获取到数据
jsonp调用webapi和mvc的更多相关文章
- AJAX跨域调用ASP.NET MVC或者WebAPI服务的解决方案
		
问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP.NET Web API编写的服务时,会发生无法访问的情况. 重现方式 使用模板创建一个最简单的ASP.NET Web ...
 - 关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案
		
作者:陈希章 时间:2014-7-3 问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP.NET Web API编写的服务时,会发生无法访问的情况. 重现方式 使用模 ...
 - AJAX跨域调用ASP.NET MVC或者WebAPI服务
		
关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案 作者:陈希章 时间:2014-7-3 问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP. ...
 - spring mvc jsonp调用示例
		
服务端代码:主要是返回的时候,返回值要用callback包装一下 /** * JSONP调用 * * @param request * @return */ @RequestMapping(" ...
 - WebApi接口 - 如何在应用中调用webapi接口
		
很高兴能再次和大家分享webapi接口的相关文章,本篇将要讲解的是如何在应用中调用webapi接口:对于大部分做内部管理系统及类似系统的朋友来说很少会去调用别人的接口,因此可能在这方面存在一些困惑,希 ...
 - web api 跨域请求,ajax跨域调用webapi
		
1.跨域问题仅仅发生在Javascript发起AJAX调用,或者Silverlight发起服务调用时,其根本原因是因为浏览器对于这两种请求,所给予的权限是较低的,通常只允许调用本域中的资源,除非目标服 ...
 - 跨域调用webapi
		
web端跨域调用webapi 在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webap ...
 - 跨域调用webapi   web端跨域调用webapi
		
web端跨域调用webapi 在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webap ...
 - web端跨域调用webapi
		
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...
 
随机推荐
- 【JS】Intermediate3:AJAX
			
1.load new content into a page without a full reload XML HTTP Request (XHR) To retrieve new content ...
 - 三种情形容易引起Azure虚拟机重新启动
			
与虚拟机或云服务角色中运行的代码有关的问题可能会导致重新启动.但是,Microsoft 在以下情况下也会重新启动您的角色: 来宾操作系统更新 – 仅影响云服务 Web 和辅助角色.有关如何限制这些 ...
 - Esper系列(八)Method Definition、Schema
			
Method Definition 作用:以公共静态方法的方式去访问外部数据. 应用说明: 1.返回数据的方法必须是公共静态方法(方法参数可以有多个也可以没有): 2.如果返回一条数据或无返回数据 ...
 - VPS选购及辨别vps虚拟化技术
			
现在国内外的VPS(Virtual Private Server)服务商非常多,每个服务商使用的VPS架构都不同.VPS属于虚拟化服务器,中文名:虚拟专用服务器. 常见的VPS虚拟化架构有多种:Ope ...
 - Ejabberd2:安装和操作指南(centos yum 安装ejabberd)
			
(1)首先安装EPEL Repository ## RHEL/CentOS 6 32-Bit ## # wget http://download.fedoraproject.org/pub/ ...
 - 开发日志_Jan.8.2017
			
这两天继续着手开发碰撞部分. 主要工作是写碰撞类和运动线程类.碰撞主要在于算法,运动线程只要管理好就行了. 之前碰撞测试中(即还未添加完整碰撞算法时)遇到各种bug,疑似机器人和小球的定位点不明所造成 ...
 - 遇到Class Not registered的COM异常怎么办
			
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:遇到Class Not registered的COM异常怎么办.
 - mvc:annotation-driven' must have no character or element问题
			
使用SpringMVC,启动tomcat报这个错误 解决办法 首先将Spring版本提升到3.1及以上 如果还不行替换xml文件头部: <?xml version="1.0" ...
 - 【转】C++的面象对象总结
			
转自:http://www.cnblogs.com/icemoon1987/archive/2012/10/01/2709572.html 1. 面向对象:对象.类.继承 2. 构造函数: 类的数 ...
 - ZooKeeper场景实践:(6)集群监控和Master选举
			
1. 集群机器监控 这通经常使用于那种对集群中机器状态,机器在线率有较高要求的场景,可以高速对集群中机器变化作出响应.这种场景中,往往有一个监控系统,实时检測集群机器是否存活. 利用ZooKeeper ...