2011-08-03 3 views
0

私はAjaxリクエストをしようとしていますが、何らかの理由で連結文字列を受け付けません。 クエリにいくつかのパラメータが必要な場合は、それらのパラメータを残してGET呼び出しを行います。JQuery Ajaxと連結された文字列

ここには、私が書いたコードの小さな部分があります。

 var queryString = ""; 
     var separator = "?"; 

     for (param in config.query) { 
      queryString = queryString.concat(separator, param, "=", config.query[param]); 
      separator = "&"; 
     } 

     var url = config.url + queryString; 

     $.ajax({ 
      url : url, 
+0

config.queryを表示できますか? – naveen

+0

config.queryは、confiq.query.module、config.query.page、config.query.actionなどのパラメータを含むもう1つのオブジェクトリテラルです。configはローカル変数です。これをパラメータとして別のオブジェクトリテラルで拡張します。もしそうかもしれないのだろうか。しかし、実際には文字列を構成する必要がありますが、何らかの理由でAjaxがそれを受け入れることはありません。そして別の奇妙なことは、たとえばqueryStringの前にランダムな文字列を追加すると、それを受け入れるということです。しかし、はい、クエリが間違っています。 – PPPHP

+0

1つのパラメータを削除すると動作します。 :D – PPPHP

答えて

0

私が考えることができる唯一の理由は、あなたのQueryStringが正しくエンコードされていないことです。
このラインvar url = config.url + queryString; 後のURL内のコンテンツは、コンテンツがあなたはそれが

0

トライしてみてください:

var queryString = ""; 
var separator = ""; 

for (param in config.query) { 
    queryString = queryString.concat(separator, param, "=", config.query[param]); 
    separator = "&"; 
} 

$.ajax({ 
    url: config.url, 
    data: queryString, 
    ... 
}); 
0

なるために必要なものである場合は、あなたのparamsを渡すためにdataパラメータを使用することができます参照alert(url);を追加するかどうかを確認するために、この

queryString = queryString.concat(separator, param, "=", encodeURIComponent(config.query[param]));