2011-07-06 10 views
4

私は以前ほとんどjQueryを使っていましたが、私はYUIが初めてです。私はYUI 3でIOまたはDataSourceのいずれかを使用して各Ajaxリクエストにカスタムヘッダを設定したいと思います。リクエストごとにヘッダを自動的に挿入します。 jQueryのでは、私はそうのように$ .ajaxPrefilterでこれを実現できます。YUI 3 - Ajaxのグローバルリクエストヘッダーを設定する

$.ajaxPrefilter(function (options, originalOptions, jqXHR) { 
    var value = 'blah'; 
    if (value) { 
     jqXHR.setRequestHeader("My-Custom-Header", value); 
    } 
}); 

私はYUI 3のオンラインドキュメントにこれらのページを見つけたんだけど、「それを得る」はありません。どうすればこれを達成できますか?

http://developer.yahoo.com/yui/3/examples/io/io-get.html

http://developer.yahoo.com/yui/3/api/io.html

答えて

4

チェックアウトIOモジュールの「ヘッダ」方法:API docs

私はそれをテストしていませんが、あなたはこのような何かを行うことができるはず。その

YUI().use('io', function(Y) { 
    Y.io.header('X-My-Header', 'My Custom Value'); 

    Y.io(/*...*/); // Should have the X-My-Header HTTP header 
}); 

(注)この意志現在のYUIインスタンスにのみ適用されます。したがって、別のYUI().use(/.../)ステートメントがある場合は、ヘッダーを再度設定する必要があります。

インスタンス間でヘッダーを提供する必要がある場合は、Y.io機能をラップする独自のモジュールを定義する必要があります。それが何を意味するのかを知るにはthis gistをチェックしてください。

+0

ああ!これは私が探していたものでした。しかし、YUIインスタンス全体ではうまくいかないというのは残念です。私のアプリケーションは、複数のYUIインスタンスで構成されます。 –

+0

答えはYUIインスタンス全体で機能するように更新されました。 –

+0

恐ろしいニック。私が期待していたものを超えて。ありがとう! –

1

私は非常によくYUIの構文を知っているが、これは試さないでください:

YUI().use("io-base", function(Y) { 
    var cfg, request; 

    cfg = { 
    methos: 'GET', 
    data: 'foo=bar', 
    headers: { 
     'My-Custom-Header': value 
    } 
    } 

    request = Y.io(uri, cfg); 
}); 
+0

おかげでantonが、私はすでにあなたが提案したことをしてきました。私が望んでいたのは、毎回ヘッダーを自動的に挿入することなく挿入することでした。 YUIのドキュメントでは、これについてはあまり明確ではありません。または、おそらく私は少し高密度です! :) –

3

私は正直にそれ「はJQueryを行うには良いアイデアだとは思いませんスタイル"。どちらの方法でも設定オブジェクトを提供する必要がありますので、文字数はそれほど多くはありません。

しかし、最悪の部分は、他の誰かがあなたのコードを見ると、追加のヘッダーがどこから来たのか分からず、彼はおそらく人生の時間を無駄にするだろうということです。

あなたはまだそのようなJavascriptの方法、それを行う、どこかでデフォルトのヘッダを持つようにしたい場合は:あなたが明示的に設定オブジェクトと追加のヘッダーの定義のためのパターンとして、いくつかのオブジェクトを使用していることを言う

Y.myDefaultIOCfg={"My-Custom-Header":value} 
... 
var cfg=Y.merge(Y.myDefaultIOCfg, { 
    method: 'GET', 
    data: 'foo=bar' 
}) 
request = Y.io(uri, cfg) 

この方法そこに見つけることができます。

+0

合意。 jQueryの構造の欠如は、この特定のプロジェクトにYUIを使用することを決めた理由の1つです。この手法はあまり面倒ではなく、簡単に機能させることができました。また、他の開発者が追跡できるようにするという利点もあります。 –

関連する問題