JSONP调用MVC后台接口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSONP调用MVC后台接口相关的知识,希望对你有一定的参考价值。
JSONP前台调用代码:
1、Jquery第一种方式:
$.ajax({ "url": "http://localhost:59403/api/Login", //url自行设定 "type": "get", "timeout": 1000, "async": false, "data": { "userName": txtName, "pwd": txtPwd }, "dataType": "jsonp", "jsonp": "CallBackFun_Key", //这是告诉后台:我的【回调函数】这个参数的key(其实就是回调函数的名字的名字,干!) "jsonpCallback": "CallBackFun_Name", //这是告诉后台:我的【回调函数】这个参数的value(其实就是回调函数的名字) "success": function (data) { alert("success:" + data); }, "error": function (XMLHttpRequest, textStatus, errorThrown) { switch (XMLHttpRequest.readyState) { case 0: //(未初始化)还没有调用send()方法 break; case 1: //(载入)已调用send()方法,正在发送请求 break; case 2: //(载入完成)send()方法执行完成,已经接收到全部响应内容 break; case 3: //(交互)正在解析响应内容 break; case 4: //(完成)响应内容解析完成,可以在客户端调用了 break; } alert("Exception"); } });
2、Jquery第二种方式:
$.getJSON("http://localhost:59403/api/Orgs?jsonpcallback=?", function (json) { alert(json[0].OrgId); }
.net 后台程序
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using LionTravel.LionTalk.ApiServer.Common; using System.Net.Http; using System.Text; //后台创建如下方法: public HttpResponseMessage Get(string userName, string pwd) { //控制器捕获到的请求参数,默认下标为0的,是回调函数的信息:{key:value} ==> {ajax中jsonp参数 : ajax中jsonpCallback参数} string ClientCallBackFunName = this.Request.GetQueryNameValuePairs().ToList()[0].Value; //拼接返回参数 HttpResponseMessage result = new HttpResponseMessage { //这里回调函数直接用上方获取的变量 Content = new StringContent(ClientCallBackFunName + "(1000)", Encoding.GetEncoding("UTF-8"), "application/json") }; return result; }
以上是关于JSONP调用MVC后台接口的主要内容,如果未能解决你的问题,请参考以下文章