轻松搞定jQuery+JSONP跨域请求的解决方案

  JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的
<script type="text/javascript">
$.getJSON("http://localhost:3561/User/GetAllNames?callback=?",function(json) {
for (var i = 0; i < json.length; i++) {
$("#nameList").append("

  • " + json[i] + "
  • ");
    }
    });

      服务端的逻辑主要是将数据序列化为json字符串,然后封装成"callback(json)"的形式,callback为jQuery自动生成并传到服务端的函数名称。下面使用C#实现:

    rush:java;"> public class UserController : Controller { public string GetAllNames(string callback) { string[] names = new string[] { "张三丰","张无忌","令狐冲","杨过","郭靖" }; JavaScriptSerializer jss = new JavaScriptSerializer(); string json = jss.Serialize(names); return string.Format("{0}({1})",callback,json); } }
    解决了问题。

     思考:如果服务端已经写死了callback(如:return string.Format("moty({0})",json);),那么客户端该怎么写呢?

     参考:

    rush:js;"> $.ajax("http://localhost:3561/User/GetAllNames",{ jsonpCallback: "moty",dataType: "jsonp",success: function(json) { for (var i = 0; i < json.length; i++) { $("#nameList").append("
  • " + json[i] + "
  • "); } } });

    相关文章

    页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
    jQuery实时显示日期、时间 html: &lt;span id=&quot...
    jQuery 添加水印 &lt;script src=&quot;../../../.....
    中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
    1. 用Response.Write方法 代码如下: Response.Write(&q...
    Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...