2

我有个问题。我正在为 ios 开发一个 cordova 应用程序,并尝试使用 jQuery 发出 AJAX 请求。外部服务器在 cordova.plist 中被列入白名单(实际上我只是为了确定将 * 列入白名单)。我确信该函数是正确的,因为我可以在 chrome 中手动调用它,并且它返回正确的数据。

但是,它在应用程序中运行时会返回以下标头数据:
{"readyState":0,"responseText":"","status":0,"statusText":"error"}

crossDomain更改为时false返回以下标头数据: {"readyState":4,"responseText":"","status":404,"statusText":"error"}

$.ajax({  
   type: "POST",  
   url: url,  
   data: request,  
   crossDomain:true,  
   success:  
       function(data, textStatus, jqXHR){  
           console.log('succes :S');  
           console.log(data);  
           console.log(textStatus);  
           console.log(jqXHR);  
       },  
    error:   
       function(data, textStatus, jqXHR){  
           console.log('fail :(');  
           console.log(data);  
           console.log(textStatus);  
           console.log(jqXHR);  
       }  
}); 

我希望有人能告诉我出了什么问题,因为我尝试了我能想到的一切。

编辑:谢谢你们,但我想出了问题所在。该项目曾经进行过加密,并且在本机类中仍然存在一些代码残余。所以它加密或解密了一些 URL。这个话题现在可以关闭了。

4

4 回答 4

1

不久前我回答了这个问题,并提供了修复 Mootools 和 jQuery 的方法(以及 vanilla javascript 方法)

这里: PhoneGap ajax 调用每次都失败

于 2013-11-20T17:58:59.200 回答
0

如果您正在使用,请使用 IP 或虚拟 DNS 而不是 localhost。

于 2015-07-29T06:10:48.223 回答
-1

您是否尝试过指定 dataType 'JSONP' 如下所示

dataType: 'jsonp'

是js跨域调用的解决方案

看到这个帖子

使用 jQuery 进行跨域 ajax JSONP 请求

于 2013-01-30T15:53:45.903 回答
-1

从您的 HTML 文件中删除以下元标记:

https://ssl.gstatic.com;style-src 'self' 'unsafe-inline'; 媒体源 *">

希望这有效!

于 2017-03-31T10:44:37.223 回答