2017-10-12 134 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解析變量名$sum_of_nums無效。您需要實際將該值放入JSON本身 - 而不是變量引用。請注意,你不需要再次調用'JSON.stringify'。當你指定'dataType:'json''時,jQuery已經對你的響應進行了反序列化。你也不需要設置'crossDomain:true'。沒有關於這是跨域。最後,您的JS代碼在'success'處理程序中還有一個額外的關閉'})' –

回答

1

的原因是因爲響應包含,如果它有它變量,不會被你的後端

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

只是爲了闡明JSON數據本身,它不是本地存儲在我的系統上。這些數據實際上是從一個URL的外部獲取的,並且這是返回的內容。 –

+0

嘗試在您的php代碼中分配$ sum_of_nums.TotalCost = 0並檢查。它會工作 –

+0

有沒有反序列化這個提取的JSON數據的方法? –

相關問題