无效的JSON数据$ .get()方法 - 未捕获的SyntaxError:意外的令牌<

时间:2016-08-22 12:54:39

标签: javascript jquery json

我需要帮助的人。

我正在尝试从返回JSON数据的服务器获取数据但是我收到以下错误消息(在Chrome 52中)。

似乎返回的JSON数据无效或者不是预期的格式。

ncaught SyntaxError:意外的令牌<

我的服务器以以下JSON格式返回数据

"[{\"ActionCardId\":1,\"ActionCardNumber\":\"279877\",\"AccountNo\":\"2202322179\",\"ClientName\":null,\"CellNumber\":\"0787596971\",\"TenantName\":null,\"TenantCellNumber\":null,\"AddressStandNo\":null,\"AddressStreet\":\"43 DELMAS AVENUE\",\"AddressSuburb\":\"BOKSBURG\",\"AddressCity\":null,\"AddressPortion\":null,\"AddressEarthNo\":null,\"AddressPremise\":null,\"AddressGISKEY\":null,\"AmountDueTotal\":4080.0,\"AmountDue30Day\":null,\"AmountDueCurrent\":null,\"AmountDue60Day\":null,\"ServiceLevy\":null,\"MeterNumberWater\":null,\"MeterNumberElectricity\":\"M22541\",\"MeterNumberElectricity2\":null,\"MeterNumberElectricity3\":null,\"MeterNumberPrePaid\":null,\"IsPrinted\":true,\"IsResidential\":null,\"ActionSuccessful\":false,\"ActionCardDate\":\"2016-08-20T00:00:00\",\"Remarks\":null,\"UnSuccessfulReason\":null,\"CaptureContractorId\":null,\"AddressCombo\":\", 43 DELMAS AVENUE, BOKSBURG, , \",\"BillCycleName\":\"120\",\"ServiceIndicator\":null,\"WaterReading\":null,\"WaterReadingDate\":null,\"ElectricityReading\":null,\"ElectricityReadingDate\":null,\"Unit\":null,\"ActionCardTypeId\":2,\"ContractorId\":1,\"ActionCardStatusId\":1,\"UnSuccessfulActionReasonId\":null,\"TechnicianId\":1,\"AccountInfoId\":null,\"ServiceDeliveryCentreId\":4,\"BillCycleId\":2,\"ActionCardType\":{\"ActionCardTypeId\":2,\"Active\":null,\"CreatedByOnlineUserId\":null,\"DateCreated\":null,\"DateModified\":null,\"Deleted\":null,\"Description\":\"Electricity Disconnection\",\"ModifiedByOnlineUserId\":null,\"Name\":\"ED\",\"CreatedByUser\":null,\"ModifiedByUser\":null},\"Contractor\":null,\"ActionCardStatus\":null,\"UnSuccessfulActionReason\":null,\"Technician\":null,\"AccountInfo\":null,\"ServiceDeliveryCentre\":null,\"BillCycle\":null,\"ActionName\":\"ED\",\"DateCreated\":\"2016-07-06T00:00:00\",\"DateModified\":\"2016-08-13T10:24:17.5833635\",\"CreatedByOnlineUserId\":null,\"ModifiedByOnlineUserId\":\"fa93e65d-e4a7-4a0c-91c6-4561e2612f9c\",\"CreatedByUser\":null,\"ModifiedByUser\":null}]"

我在客户端使用Javascript

$("#importDailyJobs").click(function () {

        var technicianId = 1;

        var serverUrl = "http://localhost:35825/Mobile/ImportDailyReadings"

        $.get(serverUrl, { TechnicianId: technicianId }, function (data, status) {

            alert("Success");
            console.log(data);


        }, "jsonp");

    });

我使用 jsonp ,因为我使用跨域来获取数据。

2 个答案:

答案 0 :(得分:0)

您似乎在该网址上遇到错误,而且回复内容包含在html代码<>内。

根据&#34; Jason P&#34;你应该检查&#34; raw&#34;中的实际响应。格式。如果您使用的是Google Chrome浏览器,则可以按F12,然后导航至&#34; Network&#34;选项卡,然后选择&#34; XHR&#34;之后,您应该点击#importDailyJobs来触发相应的活动。您应该会看到Ajax Request,点击该文件即可查看该请求的详细信息,例如HeadersPreview Response 等等。

您可以在Response标签中查看原始数据。

另外在旁注中,只要在其中包含双引号时将字符串用单引号括起来,如果两者都有,则将字符串包装在最少使用的字符串中,以防止大量escaping从样本回复中可以看出。

答案 1 :(得分:0)

您返回的数据不是JSON。它是一个字符串。您通过jsonp参数显式地期望JSON,并返回一个字符串,因此返回错误。