use*_*367 0 ajax jquery cordova
我正在使用cordova开发一个Android应用程序,因此我也需要发生AJAX请求.我正在为请求使用jQuery,在更新index.php安全策略后,我将其连接到远程服务器.但现在我收到错误404 - 启动AJAX请求时找不到.该错误可能与我POST到服务器的数据有关吗?网址是正确的,我启用了白名单插件.
编辑:
function ajaxrequestlogin() {
var login_username=$("#username").val();
var login_password=$("#password").val();
var dataString="username="+login_username+"&password="+login_password;
$.ajax({
type: "POST",
url: "http://www.my-url.de/path/to/myapi.php",
data: dataString,
crossDomain: true,
cache: false,
beforeSend: function(){ $("#message").html('Verbinde...');},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);},
success: function(data){
if(data=="success") {
window.localStorage.setItem(loggedin, true);
window.localStorage.setItem(username, login_username);
window.localStorage.setItem(password, login_password);
alert("Erfolgreich eingeloggt als "+login_username);
}
else if(data=="wrong_userorpass") {
alert("Username und Passwort stimmen nicht überein!");
}
else if(data=="failed") {
alert("Ups! Ein Fehler ist aufgetreten. Bitte versuche es erneut.");
}
}
});
return false;
}
Run Code Online (Sandbox Code Playgroud)
应用程序应将用户名和密码发送到服务器,该服务器验证凭据并使用返回success或wrong_userorpass
echo "success";
Run Code Online (Sandbox Code Playgroud)
例如.我是否必须在API的PHP脚本中更改某些内容以使选项无缓存工作,或者它是否可以在没有任何干预的情况下正常工作?
好吧经过几个小时的尝试,改变安全策略和config.xml我终于解决了问题,所以我只是分享给你,因为我认为这是尝试将Ajax与cordova应用程序一起使用时的常见问题.在尝试解决问题的同时,我读到了10个论坛帖子,其中有人更新了他们的cordova,之后Ajax丢失了404错误.这些人的解决方案总是只安装cordova-plugin-whitelist插件.对我来说(我下载了6.3版本)这个插件已经安装并激活,所以我没有理会这些答案.在今晚尝试了之后,我意识到我的脚本一切正常,它必须是一个特定于cordova的问题(我用ajax请求的浏览器版本测试了它)所以我只是输入了
cordova plugin add cordova-plugin-whitelist.它已安装(即使插件已安装并处于活动状态),此后立即一切正常.因此,即使您认为白名单插件不是问题所在:只需尝试再次安装它就可以正常工作.