2011-01-31 13 views
0

私は、認証が必要なWebサービスへのHTTPリクエストを作成しています。次のように私のintiial要求は次のとおりです。JQueryを使用してHTTP応答からセッションIDを保存する方法

function getReq() { 
$.ajax({ 
    type: "GET", 
    url: urlRequest, 
    dataType: jsonp, 
    cache: false, 
    // success: getRates, 
    error: onFaultAjaxRequest, 
    timeout: DEFAULT_TIMEOUT_AJAX_REQUEST 
}); 
} 

たURLRequestがベースアドレスに加えて、私のユーザー名とパスワードを使用してクエリ文字列が含まれています。この要求に起因するHTTP応答には、セッションIDが含まれています。このセッションIDは、Webサービスへの後続のHTTP要求で使用されます。

JQueryなどの方法を使用してセッションIDをトラップするにはどうすればよいですか?

通貨データで2番目の応答を受け取った場合、CSV形式で返されたデータからJQuery CSVプラグインを使用して配列を作成するにはどうすればよいですか?

おかげで、 シド

の応答に基づいて編集はこれまで、ここで私は私のjsファイルのために書かれたものです:

var urlRequest = "http://webrates.truefx.com/rates/connect.html?u=user&p=pass&f=html&q=dfrates" 
var DEFAULT_TIMEOUT_AJAX_REQUEST = 33000; //in milisecond 
var DEFAULT_TIMEOUT_AFTER_SUCCESS_REQUEST = 330; //time after succes request before next request 

function getReq() { 
$.ajax({ 
    type: "GET", 
    url: urlRequest, 
    dataType: jsonp, 
    cache: false, 
    success: getRates, 
    beforeSend: function(xhr){ 
      xhr.withCredentials=true; 
      }, 
    error: onFaultAjaxRequest, 
    timeout: DEFAULT_TIMEOUT_AJAX_REQUEST 
}); 
} 

function getRates(){ 
var tab=jXHR.getAllResponseHeaders(); 
} 

function onFaultAjaxRequest(XMLHttpRequest, textStatus, errorThrown) { 
var t = setTimeout(getReq, DEFAULT_TIMEOUT_AFTER_SUCCESS_REQUEST); 
} 

function onSuccessAjaxRequest(returnData) { 
var obj= getReq; 
var arr=$.makearray(obj); 

}; 

私のindex.htmlページは次のとおりです。

<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Welcome to MyDomain.com</title> 
<script type="text/javascript" src="dist/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="dist/jquery.jqplot.js"></script> 
<script type="text/javascript" src="js/dfc.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$.jqplot('chartdiv'[onSuccessAjaxRequest]); 
}); 
</script> 
<link rel="stylesheet" type="text/css" href="css/style.css"/> 
</head> 

<body> 
<div id="chartdiv"> 
</div> 
</body> 
</html> 

index.htmlをデバッグすると、jqplotプラグインにJScriptエラー「No Data Specified」と表示されるというエラーが表示されます。この状況をどのように修正すればよいですか?

ありがとうございます!

答えて

1

私はこのような何かについて考えた:

function getReq() { 
$.ajax({ 
    type: "GET", 
    url: urlRequest, 
    dataType: jsonp, 
    cache: false, 
    success: getRates, 
    beforeSend: function(xhr){ 
      xhr.withCredentials = true; 
     }, 
    error: onFaultAjaxRequest, 
    timeout: DEFAULT_TIMEOUT_AJAX_REQUEST 
}); 
} 


function getRates(data, textStatus, jXHR) { 
    var tab=jXHR.getAllResponseHeaders(); 
    // tab is a string with headers ... 
} 

しかし、クロスドメインとブラウザの問題があります。たとえば、firefox 3.5(またはjquery)はSet-Cookieフィールドをクリアしているようですので、javaScriptでは空です。他のドメインに接続する場合は、xhr.withCredentials = trueも設定する必要があります。

+0

明確にするために、新しい関数getAllResponseHeadersを作成し、success:data、textStatus、jXHRの構文を使用する必要がありますか?次に、getReqの成功をgetAllResponseHeadersにしますか?ありがとう:) – SidC

0

これを確認して、$("div#data).data("UID",UID)にセッションIDを保存してください。 http://forum.jquery.com/topic/data-session-variable-or-cookie。個人的には、セッションIDはurlの一部であり、クエリ文字列ではないため、JSESSIONIDを参照してください。 sessionidの後です。あなたはセッションを確立するときにそれを送信するブラウザを処理する必要はありません。

関連する問題