JQuery를 사용하여 데이터를 레일에 배치하려면 어떻게 해야 합니까?
다음과 같은 jquery ajax PUT 요청을 보내려고 합니다.
$.ajax({
type: "PUT",
url: '/admin/pages/1.json',
data: { page : {...} },
dataType: 'json',
success: function(msg) {
alert( "Data Saved: " + msg );
}
});
다만, 다음의 에러가 표시됩니다.
The error occurred while evaluating nil.name
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/xml_mini/rexml.rb:29:in `merge_element!'
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/xml_mini/rexml.rb:18:in `parse'
(__DELEGATION__):2:in `__send__'
(__DELEGATION__):2:in `parse'
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/hash/conversions.rb:154:in `from_xml' ... ...
Rails가 XML로 해석하려고 하는데 JSON을 사용하고 싶다!!
JSON을 궤도에 올리려면 어떻게 해야 합니까?
PUT 및 DELETE가 모든 브라우저에서 지원되는 것은 아닙니다.RubyOnRails는 RoR이 요청을 어떻게 처리할지를 나타내는 _method라고 하는 추가 파라미터 전달을 지원합니다.
$.ajax({
type: "POST",
url: '/admin/pages/1.json',
data: { _method:'PUT', page : {...} },
dataType: 'json',
success: function(msg) {
alert( "Data Saved: " + msg );
}
});
그dataTypejQuery의 param은 전송되는 형식이 아니라 답변 형식을 지정합니다(예, 매우 좋지 않은 이름입니다).데이터를 다른 형식으로 서버에 전송하려면application/x-www-form-urlencoded를 사용해야 합니다.contentTypeparam. 또한, 이 비디오의 시리얼화 할 필요가 있습니다.data:
$.ajax({
type: "PUT",
url: '/admin/pages/1.json',
data: JSON.stringify({...}),
contentType: 'application/json', // format of request payload
dataType: 'json', // format of the response
success: function(msg) {
alert( "Data Saved: " + msg );
}
});
좋아요, 사실 제 JSON 데이터에는 페이지 키가 없었어요, 제 실수입니다.그래서 그것이 정확하게 해석되지 않은 것이다.그러나 이제 적절하게 구문 분석된 json 개체가 아닌 페이지 키의 값으로 "object Object" 문자열이 표시됩니다.
JQuery 또는 Rails 중 어디를 찾아야 합니까?
편집:
json 오브젝트를 문자열화하는 문제는 www.json.org/js.html에서 해결했습니다.
$.ajax({
type: "PUT",
url: '/admin/pages/1.json',
data: { page : JSON.stringify( {...} ) },
dataType: 'json',
success: function(msg) {
alert( "Data Saved: " + msg );
}
});
레일 측면에는 Json Gem이 필요합니다.컨트롤러 내:
params[:page] = JSON.parse params[:page] if params[:page].is_a? String
var id = $('#route_id').val()
$.ajax({
type: 'PUT',
url: '/routes/'+ id,
data: $('#markerform').serializeArray(),
dataType: "JSON",
success: function(data) {
console.log(data);
}
});
JSON이 아닌 HTML에서 jQuery/rails와 같은 문제가 있었습니다.아마 이게 도움이 될 거야-
의 매개 변수.[object Object]
data: { lesson: { date: drop_date } }
의 매개 변수.lesson[date]
data: { "lesson[date]": drop_date }
이것이 도움이 되길 바랍니다-
jQuery에 Request Headers를 설정하기만 하면 됩니다.
jQuery.ajaxSetup({
'beforeSend': function(xhr) {
xhr.setRequestHeader("Accept", "text/javascript");
}
})
언급URL : https://stackoverflow.com/questions/907910/how-do-i-put-data-to-rails-using-jquery
'programing' 카테고리의 다른 글
| gem install json -v 1.7.3은 '빌드 도구를 포함하도록 PATH를 업데이트하십시오'를 제공합니다. (0) | 2023.02.22 |
|---|---|
| 메이븐...프로젝트를 정리하지 못했습니다.삭제하지 못했습니다.\sysm.ow2.sysm-asm-tree-3.1.jar (0) | 2023.02.22 |
| Angular에서 속성 액세스JS 지시어 (0) | 2023.02.22 |
| watch 플러그인 "node_modules/jest-watch-typeahead/filename.js"를 초기화하지 못했습니다. (0) | 2023.02.22 |
| 스프링 데이터 JPA 옵션 대신 Kotlin null을 사용하는 방법 (0) | 2023.02.22 |