2017-08-06 17 views
0

私は、qとして送信する代わりに、URLを介してパラメータを渡す必要がある「奇妙な」(多分そうではない)ケースに遭遇しています。 docsから次の例を見てみましょう:上記の例ではparams.termAJAXデータソースを使用する場合、Select2でクエリ文字列パラメータを設定できますか?

$(".js-data-example-ajax").select2({ 
    ajax: { 
    url: "https://api.github.com/search/repositories", 
    dataType: 'json', 
    delay: 250, 
    data: function (params) { 
     return { 
     q: params.term, // search term 
     page: params.page 
     }; 
    }, 
    processResults: function (data, params) { 
     params.page = params.page || 1; 

     return { 
     results: data.items, 
     pagination: { 
      more: (params.page * 30) < data.total_count 
     } 
     }; 
    }, 
    cache: true 
    }, 
    ... 
}); 

をサーバーに送信され、あなたはそれを取得し、あなたがやりたいために、任意のメカニズムを使用することができます。

私のケースでは、検索語をAPIエンドポイントに送信しています。あなたは、多くの予告params.termは、APIのURLに送信される値になったよう

'http://someurl?slug='+params.term+'&title='+params.term+'&description='+params.term+'&content='+params.term 

:つまり

http://someurl?slug=56&title=56&description=56&content=56 

:APIは、次の例のようなものを期待しています。

しかし、私はSelect2でこれを達成する方法を知らない。私はいくつかの情報を探してきたが、成功せず、これは私がこれまで見てきたものです:

しかし、どれも何も言います私が必要とするものについてどのようにこれを達成するための任意のアイデアを持っていますか?

+0

クエリ文字列がapi docs https://developer.github.com/v3/search/と一致していないようです。あなたのデータの 'q 'は正しいようです – charlietfl

+0

@charlietflこれはちょっとした例です。それは正しいURLであるとは限りません。私は、同じページに投稿を保持するための例からコピーして貼り付けます。何か他のもの – ReynierPM

+0

あなたが作成されたクエリパラメタを使うときや、よく書かれているgithubのようなapi urlを表示すると混乱していることを確かめてください – charlietfl

答えて

1

変更するには、クエリ文字列にしたいの特性を反映するために、データオブジェクト:

data: function (params) { 
    return { 
    slug: params.term, 
    description: params.term, 
    content: params.term 
    }; 
}, 
これが実際のように行われるのdevのツール、ネットワーク内の

ダブルチェックそうでない場合は、AJAXのオプションにtype:'GET'を追加してみてくださいGET

+0

すごい、あなたはそれがうまくいっているし、 'type: 'を追加する必要はありませんでした。ありがとう – ReynierPM

関連する問題