在CORS实施后,ios UIWebView上的SOP违规,但不是FF桌面?

时间:2013-02-04 18:33:56

标签: gwt uiwebview jetty

我正在从域A加载我的GWT项目,然后尝试从另一个位于不同域的服务器(B)中获取一些数据。所以我遇到了SOP违规问题。为了解决这个问题,我在服务器B上实现了CORS。 现在,当通过Firefox桌面运行时,SOP问题已经消失。然后我尝试在ios上的UIWebView中运行相同的代码。我似乎违反了SOP:

public class MyRequestCallback implements RequestCallback {

    @Override
    public void onResponseReceived(Request request, Response response) {
        if (response != null) {
            if (response.getStatusCode() == 0) {
                // Is this a SOP violation?
            }
        }
    }
}

我可以看到连接需要一些时间(所以看起来就像请求出去了),但是我只得到一个零回的状态代码。

有没有人碰到这样的事情?很难弄清楚在哪里张贴这个,因为它触及了堆栈的几个不同部分。也许UIWebView上有一个属性我需要设置告诉它可以使用CORS吗?

要在我的服务器上实现CORS(我正在使用jetty),我使用了: http://wiki.eclipse.org/Jetty/Feature/Cross_Origin_Filter

由于

-----更新------

这是我在web.xml中定义过滤器的方法:

<filter-mapping>
  <filter-name>cross-origin</filter-name>
  <url-pattern>/api/v1/*</url-pattern>
</filter-mapping>

FF客户端和ios客户端都在命中我的一个测试端点。

1 个答案:

答案 0 :(得分:0)

我改变了我发射码头的方式,现在使用:

http://wiki.eclipse.org/Jetty/Howto/Using_Jetty_Runner

而不是:

http://wiki.eclipse.org/Jetty/Howto/Run_Jetty

使用跑步者运行我的战争,交叉原始请求正常。对于我正在使用的jetty版本(v7.3)和由于此问题v7.6.9而更新的版本都是如此。所以我以前开始码头的方式可能会有一些错误。

由于