2011-08-03 2 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 등과 같은 매개 변수를 포함하는 또 다른 객체 리터럴입니다. config는 로컬 변수이며 매개 변수로 제공되는 다른 객체 리터럴로 확장합니다 . 그게 사실 일지 모르겠습니다. 그러나 실제로는 문자열을 구성하기 때문에 이상하게 보일 수 있습니다.하지만 어떤 이유에서든 아약스는 그것을 받아들이지 않을 것입니다. 그리고 또 다른 이상한 점은 queryString 앞에 임의의 문자열을 추가하면 받아 들일 수 있다는 것입니다. 하지만 그렇다면 쿼리가 잘못되었습니다. – PPPHP

+0

하나의 매개 변수를 제거하면 작동합니다. : D – PPPHP

답변

0

제가 생각할 수있는 유일한 이유는 귀하의 QueryString이 올바르게 인코딩되지 않았다는 것입니다. 내용은 당신이 당신의 PARAMS을 통과 data 매개 변수를 사용할 수 있습니다

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

수를 필요한 경우
이 행 다음 URL 내부의 내용이 var url = config.url + queryString; alert(url); 참조 추가 있는지 확인하기 위해이

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