2013-10-22 9 views
0

이 같은 $ 아약스 전화 :이상한 행동

selected() 배열

가이 페이로드 task%5Bassigned_to%5D%5B%5D=524eda6b421aa91f4e000003&task%5Bassigned_to%5D%5B%5D=524ee37c421aa91ca9000008로 요청을 전송하고 잘못을 반환합니다! json을 보내야하지만 json이 아니므로 레일 서버가이를 처리 할 수 ​​없습니다 (Rails MultiJSON).

나는 크롬과 파이어 폭스 (모두 최신 안정 버전)에서 테스트를 마쳤습니다.

정말 도움이됩니다.

편집

처음 JSON.stringify 데이터가 잘 작동하지만 전혀 좋은 해결책이 아니다, 그리고 다른 방법으로도 $.ajax 작동하면!

data: {"task": {"assigned_to": selected()}} 

또는 외부 데이터를 정의하고 다음과 같이 할당 :

+0

이 질문은 동일합니다 문제 http://stackoverflow.com/q/1749272/1482780 –

+1

문제는 ajax 매개 변수에'processData : false'를 설정하면 해결됩니다. btw 왜 jquery 그런 짓을?! 왜 항상 아약스에 기본이 아닌 옵션이 있습니까? 내가 생각하는 더 나은 해결책이 있어야한다! –

+0

밖으로 체크 아웃 할 수 있습니다 : http://stackoverflow.com/questions/6410810/rails-not-decoding-json-from-jquery-correctly-array-becoming-a-hash-with-intege 이 보인다 나를 위해 작동;) – aabes

답변

0

일부 이중 따옴표와 함께 시도 후

var dataMap = {"task": {"assigned_to": selected()}}; 

과 :

$.ajax({ 
type: 'PUT', 
url: model.url(), 
data: dataMap, 
contentType: 'application/json' 
}) 
+0

여전히 오류가 발생합니다. data와 dataMap은 똑같습니다 ('=='와 비교). –

+0

@KiTO 큰 따옴표로 시도해주세요, 죄송합니다. – Airrr

+0

정확한 오류! –