Ajax phonegap api调用不工作

Ajax phonegap api调用不工作,ajax,cordova,Ajax,Cordova,我有一个在localhost:3000上运行的rails api。在我的phonegap应用程序中,我试图通过api登录,但它给出了一个错误(“错误”),无法访问api。 跨域请求可能存在一些问题,但据说在移动设备中没有这样的事情。互联网正在运行 我的ajax: $.ajax({ url: 'localhost:3000/api/v1/login', type: "POST", dataType: "json", data : {u

我有一个在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中。

这是因为在设备/仿真器上运行此代码时使用的是“localhost”,因此“localhost”指的是设备/仿真器本身,而不是包含rails API的web服务器。您需要将“localhost”切换到服务器的IP地址或主机名