我在localhost:3000上运行了一个rails api。在我的phonegap应用程序我试图通过api登录,但它给出一个错误(“错误”),并没有达到api。 可能是跨域请求的一些问题,但据说在移动设备中没有这样的事情。互联网正在运作。
我的ajax:
$.ajax({
url: 'localhost:3000/api/v1/login',
type: "POST",
dataType: "json",
data : {username:"demo",password:"demo"},
success: function(data) {
navigator.notification.alert("ok");
},
error: function(xhr, textStatus, errorThrown) {
console.log("Error status " + status);
}
});
编辑2 - 解决了
你必须使用本地IP例如。 192.168.2.2 并在ExternalHosts键中的Cordova.plist中添加主机。
答案 0 :(得分:0)
这是因为在设备/模拟器上运行此代码时使用的是“localhost”,然后“localhost”指的是设备/模拟器本身,而不是包含rails API的Web服务器。您需要将“localhost”切换为服务器的IP地址或主机名。