2017-10-12 20 views
0

が定義されていない私は、AJAX経由でAPI呼び出しを行うためにしようとしているとの結果がフェッチされたときに、私はこのエラーを取得しておいてください。

Uncaught ReferenceError: $sum_of_nums is not defined

下のJSONデータを見ると、データ自体に$sum_of_numsという変数があります。

// JSON data 
"results":[{ 
    "name": "Some Name",      
    "TotalCost": $sum_of_nums.TotalCost  
}] 


$(document).ready(function(){ 
    var data = { 
    "company": "SomeCompanyName", 
    "companyCode": @Html.Raw(Json.Encode(Model.CompanyId))     
    }; 

    var url = "URL_VALUE_HERE"; 
    $.ajax({ 
    url: url, 
    crossDomain: true, 
    dataType: "json", 
    data: data, 
    error:function(e){ 
     alert("nope" + e); 
    }, 
    success: function (xhr_request) {                        
     $("#Container").html("<pre>" + JSON.stringify(xhr_request["results"], undefined, 2) + "</pre>"); 
     }); 
    } 
    }); 
}); 

このエラーがなぜ発生しているのか分かりません。このデータが正しく解析されているかどうかはわかりません。

ご協力いただければ幸いです!

+0

が含まれているためであるJSONが返される理由は有効ではありません。実際にその値をJSON内に配置する必要があります。可変参照ではありません。 'JSON.stringify'をもう一度呼び出す必要はありません。 jQueryは 'dataType: 'json''を指定したときに、すでにあなたのためにレスポンスを非直列化しています。 'crossDomain:true'を設定する必要もありません。これについては何もクロスドメインではありません。最後に、あなたのJSコードには 'success'ハンドラに余分な終了(' ')'があります –

答えて

1

それはそれでその変数を持っている場合、応答は、バックエンドによって解析されません、変数名$sum_of_nums

"name":"Some Name",      
     "TotalCost": $sum_of_nums.TotalCost 
+0

JSONデータ自体を明確にするために、私のシステムにはローカルに保存されていません。このデータは実際にはURLから外部に取り出され、返されます。 –

+0

あなたのPHPコードで$ sum_of_nums.TotalCost = 0を割り当ててチェックしてみてください。それは動作します –

+0

このフェッチされたJSONデータを逆シリアル化する方法はありますか? –

関連する問題