[英]Request response doesn't work
這是我的JSON函數:
function createjson(){
var json='{"jsondata":[[';
$("#kup td").each(function(){
if($(this).html()!="")
{
json+= parseInt($(this).html())+",";
if($(this).index()%5==0 && $(this).index()!=0){
json=json.substring(0,json.length-1);
json+="],["
}
}
});
json=json.substring(0,json.length-3);
json+="]]}";
console.log(json); //-> works fine.
return json;
};
AJAX部分:
$("#button").click(function(){
$.ajax({
type:"POST",
url:"x.php",
data: createjson(),
contentType: "application/json",
dataType: "json",
success: function(result) {
alert("done"); //->works
}
});
});
PHP部分:
<?php
header('Content-type: application/json');
echo "<pre>";
echo $_POST['jsondata'];
echo "</pre>";
?>
因此,“警報”有效,但是在控制台中檢查響應時,它僅返回“ <pre></pre>
”
有什么辦法嗎?
數據選項可以包含格式為key1 = value1&key2 = value2的查詢字符串,也可以包含格式為{key1:'value1',key2:'value2'}的對象。 如果使用后一種形式,則在發送數據之前,將使用jQuery.param()將數據轉換為查詢字符串。 可以通過將processData設置為false來繞過此處理
。 從jQuery API文檔
我沒有對其進行測試,但是應該強烈嘗試更改結構,並嘗試一下:
function createdata(){
var data;
$("#kup td").each(function(){
if($(this).html()!="")
{
data.push( parseInt( $(this).html() ) );
//...
}
});
console.log(data);
return data;
};
$("#button").click(function(){
var data = createdata();
$.ajax({
type:"POST",
url:"x.php",
data: {createjson:data},
contentType: "application/json",
dataType: "json",
success: function(result) {
alert("done"); //->works
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.