cas 5.2 ajax,CAS authentication and redirects with jQuery AJAX

You can make such cross-domain AJAX calls with a PHP proxy. In the following example the proxy is capable of calling REST web services that return a JSON string.

wsproxy.php

if (!isset($_POST["username"]) || !isset($_POST["password"]))

die("Username or password not set.");

$username = $_POST["username"];

$password = $_POST["password"];

if (!isset($_GET['url'])

die("URL was not set.");

//Rebuild URL (needed if the url passed as GET parameter

//also contains GET parameters

$url = $_GET['url'];

foreach ($_GET as $key => $value) {

if ($key != 'url') {

$url .= "&" . $key . "=" . $value;

}

}

//Set username and password for HTTP Basic Authentication

$context = stream_context_create(array(

'http' => array(

'header' => "Authorization: Basic " . base64_encode("$username:$password")

)

));

//Call WS

$json = file_get_contents($url, false, $context);

// Read HTTP Status

if(isset($http_response_header[0]))

list($version,$status_code,$msg) =

explode(' ',$http_response_header[0], 3);

// Check HTTP Status

if($status_code != 200) {

if($status_code == 404) {

die("404 - Not Found");

} else {

die($status_code . " - Error");

}

}

//Add content header

header('Content-Type: application/json');

print $json;

?>

URL usage

Note that if you don't need to pass username and password, then a GET request is sufficient.

$.ajax({

type : "POST",

url : "http://" + document.domain +

"/wsproxy.php?url=http://wsToCall.com/ws/resource?param1=false&param2=true",

dataType : "json",

success : handleRedirects,

data: { username: "foo", password: "bar" }

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值