2012-10-01 2 views
0

나는 Ruboku on Rails 응용 프로그램과 함께 Safoku에서 실행 중입니다."object object"가 매개 변수로 실제 객체 대신에 전달되었습니다.

$.ajax({ 
    type : 'POST', 
    url : '/test_page', 
    data : {stuff: arr1}, 
    dataType : 'script' 
}); 

arr1이 객체의 배열 있어야한다 : 나는 다음과 같은 Ajax 호출이있다. 거기에 console.log 권리는 그 전에, 그리고 그것입니다

[Object, Object, Object, Object, Object, ...] 

을하지만, 나는이 아약스 전화를했을 때 나는 서버 측에 오류가 발생했습니다. 나는 그것을 완벽하게 일했다, 이후 그것을 시도했습니다 때마다, 그것은 항상 (어쨌든, 그런 의미에서) 전에 완벽하게 작동했다 - 로그는 제가 오류를 복제 할 수없는거야

2012-10-01T03:13:34+00:00 app[web.1]: Parameters: {"stuff"=>"[object Object]"} 
2012-10-01T03:13:34+00:00 app[web.1]: WARNING: Can't verify CSRF token authenticity 
2012-10-01T03:13:34+00:00 app[web.1]: NoMethodError (undefined method `to_hash' for "[object Object]":String): 
2012-10-01T03:13:34+00:00 app[web.1]: Completed 500 Internal Server Error in 1ms 

을 보였다. 이 호출은 내가 테스트 케이스 중 하나이기 때문에 수십 번 만들었던 것과 정확히 똑같은 호출 이었으므로 전송 된 데이터를 변경하는 것과 아무런 관련이 없습니다. 그것은 나에게 정말로 혼란 스럽습니다. 그 문자열이 때때로 객체가 아닌 서버로 전달되는 원인은 무엇입니까?

"CSRF 토큰 신뢰성을 확인할 수 없습니다"행과 관련이있을 수 있습니다. 다른 성공적인 요청에 대해서는 로그에 표시되지 않기 때문입니다. .. http://lathamcity.com/posts/ajaxInRails.html

+0

왜'dataType : script'입니까? – elclanrs

+0

"arr1"을 매개 변수의 * 값 *으로 보내면 그 값을 얻습니다. 기본적으로 설정이 손상되었습니다. 개체를 개별 매개 변수로 보냅니다. – Pointy

+0

js.erb 파일은 서버 측에서 렌더링되고 응답으로 실행됩니다. 수백 건의 서버 호출이있었습니다. –

답변

1
dataType : 'script' 

당신이 작동 확신 볼

시도 - dataType: 'script'에 대해 궁금 분들을 위해

, 그것은 응답이 렌더링 js.erb 파일을 때문에이

dataType : 'json' 

보내시는 데이터에 json.stringify도 사용하십시오.

data : {"stuff" : JSON.stringify(arr1)}, 

키가 따옴표로 묶여 있는지 확인하십시오.

+0

이렇게하면됩니다. 통화는 한 번만 실패하고 다른 모든 시간은 성공합니다. 'dataType : 'script''는 응답으로 js.erb 파일을 렌더링하기 때문입니다. - http://lathamcity.com/posts/ajaxInRails.html을 참조하십시오. –

+0

호출은이 한 번만 제외하고 계속 작동했습니다. 이 답변에 설명되어있는 것과 관련된 문제인 경우 항상 일하거나 일하지 않습니까? –

관련 문제