【发布时间】:2013-01-30 15:48:47
【问题描述】:
我有一个问题。我正在为 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。这个话题现在可以关闭了。
【问题讨论】:
-
“白名单”是否意味着服务器将
Access-Control-Allow-Origin标头作为*发送? -
@devnull69 白名单意味着告诉 Cordova 和移动操作系统您希望向白名单域发出网络请求。 docs.phonegap.com/en/2.3.0/…
-
您有什么方法可以确保您的应用发送的请求正在发送到服务器?
标签: jquery ios ajax post cordova