Jquery ajax jsonp跨域访问 返回格式及其获取方式 并实现单点登录SSO

后台代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.SessionState;

using LaChapelle.Common;

using LaChapelle.Components;

using LaChapelle.LINQ.GOODS;

using System.Text;

using LaChapelle.LINQ.USER;

namespace LaChapelle.CandiesWeb.ajax

{

/// <summary>

/// Goods 的摘要说明

/// </summary>

public class UserAjax : IHttpHandler, IReadOnlySessionState

{

private string userCookieStr = string.Empty;

private string callbackName = string.Empty;

public void ProcessRequest(HttpContext context)

{

if (!string.IsNullOrEmpty(context.Request["ajaxMethod"]))

{

context.Response.ContentType = "text/plain";

if (context.Request["userco"] != null)

{

userCookieStr = context.Request["userco"];

}

if (context.Request["callback"] != null)

{

callbackName = context.Request["callback"];

}

string ajaxMethod = context.Request["ajaxMethod"];

switch (ajaxMethod)

{

case "loginsinglepoint":

loginSinglePoint();

break;

}

}

}

private void loginSinglePoint()

{

if (!string.IsNullOrEmpty(userCookieStr))

{

CookieManager.SetCookie(CookieHelper.USERNAMECOOKIENAME, userCookieStr);

HttpContext.Current.Response.Write(callbackName + "({\"result\":\"0\"})");

HttpContext.Current.Response.End();

}

else

{

HttpContext.Current.Response.Write(callbackName + "({\"result\":\"-1\"})");

HttpContext.Current.Response.End();

}

}

public bool IsReusable

{

get

{

return false;

}

}

}

}

前端代码:

function loginSinglePoint(cookiestr) {

$.ajax({

type: "get",

url: 'http://www.candies.com.cn/ajax/UserAjax.ashx?ajaxMethod=test&userco=' + cookiestr,

dataType: "jsonp",

success: function (json) {

alert(json.result);

}

});

}

//实现单点登录

//function loginSinglePoint(cookiestr) {

// var urls = ["http://www.candies.com.cn/ajax/UserAjax.ashx?ajaxMethod=loginsinglepoint&userco=",

// "http://www.7modifier.com/ajax/UserAjax.ashx?ajaxMethod=loginsinglepoint&userco=",

// "http://www.lachapelle.com/ajax/UserAjax.ashx?ajaxMethod=loginsinglepoint&userco=",

// "http://sp.lachapelle.com/ajax/UserAjax.ashx?ajaxMethod=loginsinglepoint&userco="];

// $.each(urls, function (i, n) {

// $.ajax({

// type: "get",

// url: n + cookiestr,

// dataType: "jsonp",

// success: function (data) {

// alert(data.result);

// }

// });

// });

//}

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="LaChapelle.MemberWeb.test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head >

<input type="button" />

</form>

</body>

</html>