我需要帮助。 它的小应用程序,用于在一个div容器中操作html元素。单击使用jQuery保存后,我获取所有元素,并使用post方法将其发送到另一个带有ajax的页面。在大多数计算机上运行正常,但在某些计算机上它会发送空数据字符串(主要是Safari浏览器)。
代码:
<div class="container"></div>
<div class="save">save</div>
JS:
$('.snimi').click(function () {
//get all elements from container with "elements" class name!
elementi = $('.container > .element');
data = "";
for (i = 0; i < elementi.length; i++) {
current_element = elementi[i];
//get class name and clear rest!
element_class = current_element.className.replace('element', '');
element_class = element_class.replace('ui-draggable ui-draggable-handle ui-resizable', '');
class_name = element_class.replace(/ /gi, '');
element_width = current_element.width;
element_height = current_element.height;
//name;left;top;width;height|
data += class_name + ";";
data += $(current_element).position().left + ";";
data += $(current_element).position().top + ";";
data += $(current_element).width() + ";";
data += $(current_element).height();
i != elementi.length - 1 ? data += "|" : '';
}
$.post("somepage.php",
{
snimi_xmas: true,
data: data,
},
function (data, status) {
if(!isNaN(data)){
window.location.href = "finish.php?view="+data;
}else{
alert(data);
}
});
});
有什么问题?
答案 0 :(得分:0)
你正在使用“finish.php?view =”+ data“ - 这意味着它的GET
通常我们使用这种方式使用JQuery
首先需要设置jQuery.ajaxSettings.traditional = true; 而不是创建对象并将其发送到使用数据对象
jQuery.ajaxSettings.traditional = true;
$.ajax({
url: "some.php",
context: document.body,
dataType:"jsonp",
contentType:"application/json",
type: 'POST',
data: {"values":["401","809","2839","3189"]}
}).done(function(data) {
//Your code on response
});
希望这会对你有所帮助。