jQuery ajax json请求不通过移动网络工作

时间:2012-08-03 14:03:59

标签: android json jquery mobile servicestack

我已经用这个试了几天了。

我使用普通的旧HTML和jquery编写了一个移动专用网站。

它使用带有json响应的ajax来从使用服务栈写入的服务中获取数据。

从桌面和我尝试的许多不同的手机(android,iphone,bb等)完全正常工作

然而,我的手机(沃达丰上的三星Galaxy S2)似乎存在特定问题

当手机在wifi上时,ajax工作正常,并且从服务接收json对象并正确处理。

然而,当在移动数据上时,响应不会以json的形式返回,而是作为服务堆栈网页(看起来它没有被告知正确返回json)

我想知道标题是否可能被沃达丰或某些人删除?

这是正在使用的ajax调用

$.ajax({
            url: sgee.ApiUrl + "/api/GetRegionId/" + sgee.App.postcode,
            type: 'GET',
            dataTye: 'json',
            contentType: "application/json;charset=utf-8",
            cache: false,
            success: function (data) {
                if (data.success) {
                    sgee.App.EnquiryId = data.enquiryId;
                    sgee.App.RegionId = data.regionId;
                    sgee.App.RegionName = data.regionName;
                    $("#regionTxt").html("We have identified that you live in the " + sgee.App.RegionName + " supply region.");
                    sgee.EndLoading(250);
                    sgee.HideStep(2);
                } else {
                    sgee.SetValidationError("#pcodeControl", "Please enter a valid UK postcode");
                }

            },
            error: function () {
                sgee.SetValidationError("#pcodeControl", "Please enter a valid UK postcode");
                sgee.SendError("Error on /api/GetRegionId/", "sgee.Step1");
            },
            complete: function () {

            }
        });

这是预期的数据

{"postCode":"s63","regionId":14,"regionName":"YORKSHIRE","enquiryId":578106,"success":true,"returnedId":0}

当在移动设备上运行时,这就是我收到的内容(生病不包括整体因为它很长,但它只是html响应,好像我没有设置响应类型或浏览到页面)

<!doctype html>
<html lang="en-us">
<head>
<title>GetRegionId Snapshot of 03/08/2012 13:59:50</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

这真让我生气,因为它无法调试(至少我找不到办法)我使用的是android chrome远程开发人员工具来逐步执行代码但我无法捕获http请求和响应,因为它是移动网络。

3 个答案:

答案 0 :(得分:0)

猜猜......但你期待json内容正确吗?如果是这样,为什么你的回复是“text / html”而不是“application / json”?

答案 1 :(得分:0)

你有一个拼写错误...“dataType:'json',”。这可能是吗?

答案 2 :(得分:0)

我认为是由于表单提交的类型。使用post而不是get ...