0
在更改下拉列表中的項目時,我應該通過jQuery進行AJAX調用。 (我用的是新功能的getJSON,它會自動將數據類型設置爲「JSON」,所以我沒有指定。)
我的代碼:
<script language="javascript">
$(document).ready(function() {
$('#mydropdown').change (function() {
var lookupPath = "/" + $(location).attr('pathname').split('/')[1] + "/lookup";
var jsonData = '{\"lookupIdentifier\":\"MY_LOOKUP\",\"secondParam\":\"PARAM\"}';
alert('JSON Data is: ' + jsonData);
var jqxhr = $.getJSON(lookupPath, jsonData).done(function(data) {
alert('AJAX Call Completed. Data: ' + JSON.stringify(data));
}).fail(function(d, textStatus, error) {
alert('Failed: ' + d + " textStatus: " + textStatus + " error: " + error);
});
首先,我驗證傳遞的是正確的,沒有語法問題的JSON字符串:
{"lookupIdentifier":"MY_LOOKUP","secondParam":"PARAM"}
這將進入故障(),錯誤:
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
有什麼想法?
你從哪裏得到JSON?難道你會得到[BOM](https://en.wikipedia.org/wiki/Byte_order_mark)? –
在json之前尋找額外的字符。將瀏覽器開發工具請求的響應正文的100%複製到json驗證器中 – charlietfl
也應該將對象不是字符串傳遞給'var jqxhr = $ .getJSON(lookupPath,jsonData)' – charlietfl