2016-09-27 88 views
1

我有下面的代碼在PHP:jQuery的成功不會在代碼觸發200

$servername = "***"; 
    $username = "***"; 
    $password = "***"; 
    $dbname = "***"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "select * from `opencartdb`.`oc_design` where name='mydesign '"; 
    $res=$conn->query($sql); 
    $records=$res->fetch_assoc();//success 

    $result2=$records['info'];// already json 
    $conn->close(); 


    echo ($result2); 

,我嘗試用下一個JS抓住它:

jQuery.ajax({ 
      dataType: "json", 
      url: "ajax.php?type=loadDesign&user_id="+user_id+"&design_id="+key 
     }).success(function(data) { 
      alert(0); 
      console.log((data)); 
     }).always(function(){ 
      alert(1); 
     }); 

最終我看到警告1 德布格向我展示了下一個結果。迴應:

{"vectors":"{"front":{"0":{"type":"text","width":"55px","height":"27px","top":"151px","left":"86px","zIndex":"1","svg":"<svg width=\"54.9375\" height=\"27.09375\" viewBox=\"0 0 54.9375 27.09375\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"0.5646970888306251\"><text fill=\"#FF0000\" stroke=\"none\" stroke-width=\"0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x=\"\" y=\"\" text-anchor=\"start\" font-size=\"24px\" font-family=\"arial\" data-textcurve=\"1\" data-itemzoom=\"1 1\" data-textspacing=\"0\"><textPath xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"http://138.68.62.219/Design-Apple-T-shirt-PC55#textPath-item-0\"><tspan dy=\"0\">Hello</tspan></textPath></text></g><defs><path id=\"textPath-item-0\" d=\"M 0.125 22.117808976867764 A 3093.9720937064453 3093.9720937064453 0 0 1 54.124314613414626 22.117808976867764\"></path></defs></svg>","rotate":0,"text":"Hello","color":"#FF0000","fontFamily":"arial","align":"center","outlineC":"none","outlineW":0}},"back":{}}","teams":"{}","fonts":"","design_id":"1475007569235335440","image":"uploaded/2016/09/design-1475007569235335440.png","parent_id":"0","product_id":"178","product_options":"000000","title":"","description":""} 

此行是畫在debugge:

<svg width=\"54.9375\... 

回答

1

設置爲JSON響應類型在PHP。否則,jQuery可能不會接受響應類型,也不會觸發成功函數。

header('Content-Type: application/json'); 
echo json_encode($result2); 

還應該增加一個字符集,以避免BOM:

header('Content-type:application/json;charset=utf-8'); 
+0

呀'報頭( '內容類型:應用/ JSON;字符集= UTF-8');'是幫助,但我在我的json中也發現錯誤$ result2 = str_replace(''{','{',$ result2); \t \t $ result2 = str_replace('}「','}',$ result2);'解決它。 '「vectors」:「{」front「:' – tttaaabbb

+0

如果您的json無效,我建議使用json_encode,如果它幫助您解決問題,請將其設置爲正確。 –