首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >windows 7- phonegap停止jquery.ajax

windows 7- phonegap停止jquery.ajax
EN

Stack Overflow用户
提问于 2013-07-22 22:01:37
回答 1查看 438关注 0票数 4

这是我在这里的第一个问题,如果我违反了规则,很抱歉。我知道这看起来是重复的,但是我在这里和网上找到的每一个答案都没有给我任何结果。

我正在为iOS、安卓和Windows开发一个基于多平台、多页面、SOAP网络服务的应用程序。iOS和安卓的一切都很好,但当移植到Windows 7/8时,我遇到了一个棘手的问题:任何对jQuery.ajax (内部和外部)和衍生产品($.load,$.get)的调用都会启动,但显然从未得到任何答复。

目前,我正在使用jQuery 2.0.2、Cordova 2.5.0和Weinre进行调试。我切断了jQuery手机,因为它生成的代码很复杂(所以对$.mobile.allowCrossDomainPages没有用处)。

这是我用于导航的内部ajax调用的代码

代码语言:javascript
运行
复制
$("#base_page").load(
    thePage,
    function () {
        console.log("------------ loadPage: ", thePage, " loaded");
        $(document).trigger("pageload", [thePage]);
    }
);

我一点也不回答这个问题。

下面是WS数据挖掘的一个外部ajax调用的代码

代码语言:javascript
运行
复制
$.ajax({
    url: soapURL,
    type: "POST",
    dataType: "xml",
    data: createSOAPRequest(soapWS, soapParams),
    contentType: "text/xml; charset='utf-8'",
    beforeSend: function(xhr) {
        console.log("•••••••••••••• ready to send ajax");
        xhr.setRequestHeader('SOAPAction', soapURL);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log("•••••••••••••• error");
        navigator.notification.alert(textStatus + "\n" + errorThrown);
    },
    success: function(theXML) {
        console.log("•••••••••••••• success");
        console.log(theXML);
        // .......... building-page code
    }
});

这写在控制台“···准备发送ajax”那么绝对没有别的东西了。

我想我已经尝试了所有我能找到的在这里和其他来源在网上。如果我没有错过什么,我试过

  • $.support.cors =真,如来自herehere
  • 缓存的任何组合: false,crossDomain: true,xhrFields:{withCredentials: true}
  • 从win.XMLHttpRequest中禁用Cordova代码的here部分
  • 每个本地url描述,绝对的或相对的,简单的(只有页面)或完整的路径(从/www或/app/www开始,甚至是完整的愚蠢的MS协议)
  • URI在config.xml中白色显示

但没有结果。JSONP不是一个选项,因为服务器用回调值触发一个错误。

问题是,我从未收到任何错误/成功消息(因此它不同于this),就好像没有数据从WebService中出来一样。在其他操作系统中,一切都很有魅力,所以我确信WebService调用是正确的。

作为一种不顾一切的解决方案,我已经通过XMLHttpRequest对象重写了内部调用,这部分现在可以了。但是在重写对WebService的更复杂的POST调用之前,我想知道是否有任何方法来恢复(更容易并且已经工作的) jQuery.ajax功能。

EN

回答 1

Stack Overflow用户

发布于 2014-01-10 00:14:03

跨域请求的选项是JSONP、CORS (通过服务器端"Access-Control-Allow-Origin: *“头)或通过cordova的本地http请求。前两个选项要求服务器愿意与您的应用程序合作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17798214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档