ajax json возвращает синтаксическую ошибку: неожиданный токен, пытаясь понять это в течение нескольких дней

Используя jQuery, php, mysql, я написал программу для получения ueprice:

(1)После успешного получения цены
$prices = array();
$row=mysql_fetch_row($res);
$ueprice = intval($row[0]);
$pricetotal = $ueprice * $suryou;
$selprice = round($pricetotal*$crate);
$prices =array(
'unitp' => $ueprice,
'sump' => $ pricetotal,
'sellp' => $selprice
);
(2) вернуть $prices с помощью заголовка json_encode
('Content-Type: application/json');
echo json_encode ($prices);
выход;

(3) javascript, вызывающий php:
$(function(){
setPrices1d();
$("#selectQuantity1d").on("change", setPrices1d);
}) ;

 function setPrices1d() {   

$(document).ready(function()     
{    

     var grn = $('#main1d').val();      //get rank    
     var ghn = $('#sub1d option:selected').text();    //get hinban    
     var gkn = $('#detail1d').val();     //get kinou    
     var gch = $('#curtainH1d').val();     //get curtain height    
     var gcw = $('#curtainW1d').val();     //get curtain width    
     var gcr = $('#sellingRate1d').val();     //get customer_rate   
     var gsu = $('#selectQuantity1d').val();     //get suryou   

             var q = encodeURIComponent("drape");    
             var url = 'jsonprice.php?rank=' + grn + '&categ=' + q + '&hinban=' 
                        + ghn +        '&kinou=' + gkn + '&curtainh=' + gch +    
                        '&curtainw=' + gcw + '&crate=' + gcr + '&suryou=' + gsu;    
         $.ajax({       
         type: "GET",        
         url: url,    

         dataType: "json",    
        /**  
          * Ajax通信が成功した場合に呼び出されるメソッド    
          */  
         success: function(data) {myObject=JSON.parse(data);}    
        {    
             //結果が0件の場合    
             if(data == null) alert('データが0件でした');    
             //返ってきたデータの表示    

             var $unitprice = $('#unitPrice1d');    
             var $sumprice =  $('#sumTotal1d');    
            var $sellprice = $('#sellingPrice1d');    
             // clear input area  
            $unitprice.empty();    
            $sumprice.empty();    
            $sellprice.empty();    
            //set prices into text area   

            $unitprice.val(data[0].unitp);    
            $sumprice.val(data[0].sump);    
            $sellprice.val(data[0].sellp);

                 },    

        /**    
         * Ajax通信が失敗場合に呼び出されるメソッド   
         */
        error: function(XMLHttpRequest, textStatus, errorThrown)   
        {   
         alert('エラー : HttpReq= ' + XMLHttpRequest + ' textStatus =' +  textStatus + ' errThrown =' + errorThrown + ' errThrown.message  =' + errorThrown.message + ' HttpReq.status =' + XMLHttpRequest.status);    
        }   
     });      
 });      

}

(4)выше $.ajax возвращает следующую ошибку: HttpReq= [object Object] errThrown = SyntaxError: Unexpected token a Httpreq.status = 200

(5) Чтобы выяснить эту ошибку, я потратил несколько дней, но еще не исправил. Используя Google Chrome, сетевой ответ мне кажется хорошим: Network Resonponce array(8) {["rank"]=>
string(1) "S" ["categ"]=> string(12) "drape" ["хинбан"]=> строка(7) "TKR8001" ["кино"]=> строка(10) "2倍ヒダ" ["занавес"]=> строка(6) "45-120" ["занавес" ]=> string(5) "50-75" ["crate"]=> string(4) "0.90" ["suryou"]=> string(1) "3" }

{"unitp":30000,"отстойник":90000,"sellp":81000}

Я очень благодарен за ваш совет по поводу этой ошибки синтаксического анализа. Большое спасибо!


person user2491773    schedule 23.06.2013    source источник
comment
Можете ли вы попробовать использовать curl для вызова вашего сервера, чтобы вернуть свои результаты, я всегда считаю полезным проверить, что именно возвращается, используя curl. Например, curl -v -H Accept: application/json -H Content-type: application/json -X POST -d ' {user:{first_name:firstname,last_name:lastname,email:[email protected],password:app123, password_confirmation:app123}}' localhost:3000/api/1/users   -  person Shawn Vader    schedule 23.06.2013


Ответы (1)


Я нашел причину ошибки (Синтаксическая ошибка: непредвиденный токен), поэтому я хотел бы описать причину.

(1) Ошибка была в кодировке jsonprice.php. В целях отладки в нем были написаны следующие два кода. print "
sql= $sql"
var_dump($array)

Синтаксическая ошибка была остановлена, когда я закомментировал эти две кодировки.

(2) После комментирования этих кодов я получил еще одну ошибку:
(Uncaught TypeError: Невозможно прочитать свойство 'unitp' из неопределенного)

Причиной этой ошибки было описание массива. $prices = массив $prices[] = массив ‹- [] необходим

После этого я получаю надлежащие результаты.

person user2491773    schedule 24.06.2013
comment
Ваш вопрос и ответ действительно трудно читать из-за отсутствия форматирования. Пожалуйста, посмотрите stackoverflow.com/editing-help и особенно stackoverflow.com/editing-help#code. - person Felix Kling; 24.06.2013