2015-01-10 1 views
0

내가 겪고있는 문제는 Backbone.js가 쿼리 문자열을 만드는 방식과 관련이있는 것 같습니다.backbone.js .asmx 서비스에서 500 오류가 발생했습니다.

백본은 쿼리 문자열과 같이 작성

Stats.asmx/GetTarget?domainId=-1&timePeriod=M 

이것은 500 오류를 던져하여 ASMX 서비스됩니다.

Stats.asmx/GetTarget?domainId="-1"&timePeriod="M" 

이 그것은 기대 작품으로 : 나는 쿼리 문자열을 변경하는 경우

. 내가 쿼리 문자열을 내가 원하는하지만 방법의 형식을 사용자 정의 함수를 작성할 수 있습니다 알고

var params = { 
      domainId: "-1", 
      timePeriod: "M" 
    }; 
    var targetData = new Targets(); 
    targetData.fetch({ 
     data: params, 
     dataType: "json", 
     contentType: "application/json; charset=utf-8" 
}); 

이있다 : 이는 쿼리 문자열 PARAMS 따옴표를 가지고 있지에 500 오류가 발생 내가 사용하고있는 코드입니다 Backbone.js와 함께 쿼리 문자열에 ""을 추가하는 방법은 무엇입니까?

편집 :

이 내가하여 사용자 정의 함수를 작성 의미하는 것이다. 컬렉션에서

추가 : 다음

domainId: "",  
timePeriod: "", 
urlRoot: "Stats.asmx/GetTarget", 
url: function() { 
    return this.urlRoot + "?" + "domainId=\"" + this.domainId + "\"" + "&" 
     + "timePeriod=\"" + this.timePeriod + "\""; 
}, 

:

var targetData = new Targets(); 
targetData.domainId = "-1"; 
targetData.timePeriod = "M"; 
targetData.fetch({ 
    dataType: "json", 
    contentType: "application/json; charset=utf-8" 

그러나 나는 그것을 할 수있는 더 좋은 방법이 있는지입니다.

답변

0

매개 변수가 변경 될 것으로 생각되므로 URL을 수정하지 않아도됩니다. $.param 사용 해보세요 :

targetData.fetch({ 
    data: $.param(params), // <-- here is the change 
    dataType: "json", 
    contentType: "application/json; charset=utf-8" 
}); 

이 $ .PARAM가하는 일입니다 :

> $.param({page:1,filter:2}) 
"page=1&filter=2" 
관련 문제