0

this error is driving me crazy.

While using jquery 2.0.3 it works, when I change to jQuery 1.10.2 it doesn't !!! I need to use jQuery 1.10 in order to use jquery mobile panel widget I don't know what is wrong, the json is a valid jso I test it.

Here is the code: (I changed the html for an alert)

$(document).on('pageinit', "#news_list", function () {
    $.ajax({
        type: "GET",
        crossDomain: true,
        url: "http://app.virtual-competiciones.es/api/news/getnews?num=20",
        headers: { "Accept-Encoding": "gzip" },
        dataType: 'json',
        cache: false,
        success: function (data) {
            var result = data;
                        alert("ok");
        },
        error: function (xhr, status, error) {
            alert("ERROR - xhr.status: " + xhr.status + '\nxhr.responseText: ' + xhr.responseText + '\nxhr.statusText: ' + xhr.statusText + '\nError: ' + error + '\nStatus: ' + status);
        }

    });
    return false;
});

The error I'm getting is undefined (No Transport)

4

2 回答 2

0

我将回答我的问题,这样其他人就不必在同一件事上花费数小时了。

使用 jQUery 2.0.3 时,除了我发布的代码之外,您不需要添加任何其他内容,如果您使用 jQuery 1.10.2,则需要添加以下内容:

<script>
$(document).on("mobileinit",function() {
    $.support.cors = true;
});        
</script>

在 jQuery 和 jQuery Mobile 脚本之间的 head 部分。这允许进行跨域调用。

也许很简单,但因为我没有在 2.0.3 版本中使用它,所以对我来说并不是那么明显。我希望这对其他人有所帮助。

于 2013-10-31T12:07:23.880 回答
0

我今天遇到了同样的问题。Safari 浏览器 - 使用 Ipad - 未能提交表单并显示此错误消息:

无法打开页面 Safari 无法打开页面,因为地址无效

我将 JQ 从 10.2 升级到 JQuery v2.0.3(我也在使用 Jquery Mobile 1.4.0-rc.1)

我一直在使用 href="javascipt:void(0);"空锚标签。这导致 JQ ajax 调用失败。

<a href="javascipt:void(0);" onclick="submitDynamicForm('@rndId');" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-icon-check ui-btn-icon-left ui-btn gl">Save</a>

我删除了href,它开始正常工作。它正在为javascript:void(0);.

$.ajax({
    url: url,
    type: 'post',
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    //processData: false,
    data: jsonData,
    //crossDomain: true,
    headers: { "Timezone": getTimezone() },
    success: function (response) {
        console.log(response.data);
    },
    error: function (xhr, status, error) {
        //  console.log('ajax done - error');
        console.log("ERROR - xhr.status: " + xhr.status + '\nxhr.responseText: ' + xhr.responseText + '\nxhr.statusText: ' + xhr.statusText + '\nError: ' + error + '\nStatus: ' + status);
    }
});
于 2013-12-05T21:43:53.863 回答