ajax 请求上的 Cordova 升级和 jQuery 错误

Posted

技术标签:

【中文标题】ajax 请求上的 Cordova 升级和 jQuery 错误【英文标题】:Cordova Upgrade and jQuery error on ajax request 【发布时间】:2014-12-18 14:25:53 【问题描述】:

我使用cordova v2.4 for android开发了一个应用程序,一切正常。我更新为使用最新的cordova(v4),经过一些插件的麻烦后,我想我已经备份并运行了它,但是我收到了一个以前有效的ajax请求错误。我已经尝试了我能想到的一切,但无法弄清楚。问题代码是.....

var ajx= $.ajax(
  type: (type.toLowerCase()==='post'?'POST':'GET'),
  url: this._prepareUrl(url)+(sid ? '&session='+sid : ''),
  data: data,
  dataType:'html',
  timeout: 60000,
  beforeSend: function(jqXHR) 
  jqXHR.overrideMimeType('text/html;charset=iso-8859-1');
  ,
  success: function(html, textStatus, jqXHR)
        //doesnt reach here
  ,
  error: function( jqXHR, textStatus, errorThrown)
        console.log('jqXHR = ' +jqXHR + ' textStatus = ' +textStatus + ' errorThrown = ' +errorThrown);  
         return false;);

捕获的错误是:

jqXHR = [object Object] textStatus = parsererror errorThrown = 错误:jQuery183007247294159606099_1418907848272 未被调用

index.html 有:

<meta http-equiv="Access-Control-Allow-Origin" content=""/> <script src="cordova.js"></script>

config.xml 有:

&lt;access origin="" subdomains="true" /&gt;

代码根本没有改变,所以升级到最新的cordova是问题所在。我错过了一些小东西,但无法弄清楚它是什么.....如果我回到使用旧版本的科尔多瓦,它可以工作......同样的代码!

【问题讨论】:

【参考方案1】:

通过注释掉类型让它工作

type: (type.toLowerCase()==='post'?'POST':'GET'),

如果我添加一个类型,无论是“GET”还是“POST”,请求都会失败.....不知道为什么.....

【讨论】:

以上是关于ajax 请求上的 Cordova 升级和 jQuery 错误的主要内容,如果未能解决你的问题,请参考以下文章

科尔多瓦没有提出ajax请求

iOS 忽略 ajax 请求 (Cordova)

Cordova 1.9.0 Ajax 未检索

使用 5.1.1 创建 Cordova 项目

超时 AJAX 请求 Cordova 5

Ajax加载后按钮上的JQuery HTML onclick属性不起作用