我正在尝试通过Trigger.io将Web应用程序部署到android。虽然应用程序最初设法加载,但我无法通过应用程序访问远程服务器。我尝试通过远程服务器登录时收到错误(见下文)
我使用以下代码将用户名和密码值提交给远程服务器
$.post "#{window.Public.domain}/users/login",
nickname: $('input.username').val()
password: $('input.password').val()
我将相同的应用程序部署到IOS并且运行正常,即访问同一个远程服务器不是问题
任何人都知道为什么我无法访问Android环境中的远程服务器而我在IOS环境中没有问题?
附加清单以供参考
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="io.trigger.forge9b9f8cdedc7f11e2bd4912313d00dc45" android:installLocation="auto" android:versionCode="1374544692" android:versionName="0.1">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="15" />
<application android:icon="@drawable/icon" android:label="Fulfilled" android:name="io.trigger.forge.android.core.ForgeApp">
<activity android:configChanges="mcc|mnc|locale|touchscreen|keyboardHidden|navigation|orientation|screenLayout|uiMode|fontScale|screenSize" android:launchMode="singleTask" android:name="io.trigger.forge.android.core.ForgeActivity" android:stateNotNeeded="true" android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider android:authorities="io.trigger.forge9b9f8cdedc7f11e2bd4912313d00dc45" android:exported="true" android:name="io.trigger.forge.android.core.ForgeContentProvider" tools:ignore="ExportedContentProvider" />
</application>
更新:
尝试了James的建议,将$ .post改为forge.request。
现在,当我尝试调用服务器时,我收到此错误
[警告] java.net.ConnectException:localhost / 127.0.0.1:9000 - 拒绝连接 [警告]在org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:254) [警告]在org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:533) [警告]在java.net.Socket.connect(Socket.java:1055) [警告]在org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection。(HttpConnection.java:62) [警告]在org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88)
我在我的应用中为服务器帖子指定的域名是
forge.request.ajax
url: "http://localhost:9000/users/login.json"
type: "POST"
data:
nickname: $('input.username').val()
password: $('input.password').val()
以上适用于IOS部署。我需要处理其他任何配置吗?
答案 0 :(得分:2)
如果没有Trigger.io应用程序的额外配置,则无法进行跨域XHR请求。
在这种情况下,您应该可以使用forge.request.ajax
提交表单:https://trigger.io/docs/current/api/modules/request.html。
在其他情况下,如果无法使用请求模块,则可以在服务器端设置Access-Control-Allow-*
标头,以便正常的XHR正常工作:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS。