2011-12-13 7 views
1

jQuery 아약스 게시물에 오류가 발생했습니다.jQuery AJAX asp.net을 사용하여 게시

IE에서받은 오류는 SyntaxError입니다 : 잘못된 문자입니다.

전체 프로젝트

가에서 찾을 수 있습니다 : 다른 위치 (클릭하고 드래그)에 상자 중 하나를 이동하면 http://dragsort.codeplex.com/

아약스 포스트가 발생합니다.

오류를 표시하기 위해 나는 JQuery와 아약스 호출에 오류 아약스 속성을 추가했다. 방법

[WebMethod] 
public static void SaveListOrder(int[] ids) 
{ 
    for (int i = 0; i < ids.Length; i++) 
    { 
     int id = ids[i]; 
     int ordinal = i; 
     //... 
    } 
} 

뒤에

function saveOrder() { 
var data = $("#gallery li").map(function() { return $(this).attr("itemID"); }).get(); 
$.ajax({ 
    url: "example.aspx/SaveListOrder", 
    data: '{ids:["' + data.join('","') + '"]}', 
    dataType: "json", 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    error: function(data, status, jqXHR) { alert(jqXHR); } 
}); 
}; 

코드 문제가 무엇인지에 대한 어떤 아이디어? 미리 감사드립니다.

EDIT/답 :

문제는 Web.config의에 있습니다. web.config에 다음 httpModule을 추가했습니다.

<configuration> 
    <system.web>  
    <httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    </httpModules> 
    </system.web> 
</configuration> 

누구에게 이것이 필요한지 자세히 설명하고 싶다면. 일단 내가 허용되면 답변으로 게시물을 만들겠습니다.

감사합니다.

+0

json 형식의 문자열 대신 실제 자바 스크립트 객체에'data'를 설정해보십시오. – BNL

+0

json 오류와 같습니다. 결과 json 데이터를 표시 할 수 있습니까? – RCE

+0

"결과 json 데이터를 표시 할 수 있습니까?"라는 의미와 JavaScript 객체를 전달하고 WebMethod에서이를 해석하는 방법을 확신 할 수 없습니다. – PsychoDUCK

답변

0

문제는 web.config에 있습니다. 사람이이 좋은 것이 필요하다 이유에 대해 자세히 설명하고 싶은 경우에 나는 Web.config의

<configuration> 
    <system.web>  
    <httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    </httpModules> 
    </system.web> 
</configuration> 

에 다음 httpModule이 추가되었습니다. 일단 내가 허용되면 답변으로 게시물을 만들겠습니다.

감사합니다.

0

개체 키는 큰 따옴표로 묶은 문자열이어야합니다. 실제로 JSON의 모든 문자열은 큰 따옴표로 묶어야합니다. 코드에서 ids은 큰 따옴표로 묶지 않습니다. 이런 식으로 큰 따옴표로 묶어야합니다.

data: '{"ids":["' + data.join('","') + '"]}', 

쉽게 JSON의 유효성을 검사 JSONLint를 사용할 수 있습니다. 당신의 AJAX 호출에 traditional: true를 추가

+0

나는 당신이 무엇을 얻고 있는지 이해하지만 행운을 빌어 수정을 시도했다. – PsychoDUCK

0

보십시오. 배열을 올바르게 전달하도록 설정해야한다고 생각합니다. 이와 같이

$.ajax({ 
     url: "example.aspx/SaveListOrder", 
     traditional: true, 
     data: '{ids:["' + data.join('","') + '"]}', 
     dataType: "json", 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     error: function(data, status, jqXHR) { alert(jqXHR); } 
    }); 
+0

나는 전통을 추가했다 : 운이없는 진실. 나는 아직도 조사 중이다. 내 게시물에 프로젝트 링크를 게시했습니다. 누구나 다운로드하여 사용해 볼 수 있습니까? – PsychoDUCK

0

반환 할 응답과 관련이있을 수 있습니다. IE에서 응용 프로그램이 json 콘텐츠 유형으로 응답해야한다고 생각합니다.

관련 문제