簡體   English   中英

請求響應不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM