Cors仅限移动浏览器

时间:2017-10-27 08:41:50

标签: jquery ajax laravel google-chrome cors

我已将CORS标头添加到服务器上的响应对象中,并且所有桌面浏览器都允许ajax调用完美返回。但是,我没有看到任何移动浏览器上的数据,并且它发现它是一个CORS错误

为什么会出现这种情况的任何想法?

客户代码:

getCharacter(completionFunc){
        $.ajax("http://somewhere.com/api/character/0", {
            //dataType: 'jsonp',
            success: function(data) {
                completionFunc(data);
            }
        });
    }

服务器标头代码(laravel):

 public function handle($request, Closure $next)
    {
        return $next($request)
    ->header("Access-Control-Allow-Origin","*")
    ->header("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, OPTIONS");
    }

在将标头添加到服务器之前,我在桌面浏览器上遇到了cors错误(正如预期的那样)。添加它们固定它,但不是在移动设备上。在处理CORS时,Chrome mobile / desktop之间有什么显着差异吗? (我也在ajax调用上尝试了jsonp dataType但是没有用)

1 个答案:

答案 0 :(得分:0)

由于我们现在不知道实际问题是由于您无法调试,因此以下是您在手机上进行调试的说明。

<强> 1。在您的计算机上安装adb(如果未安装)。

通常与Android SDK一起安装

<强> 2。在手机上启用USB调试

要在设备上使用ADB,必须启用USB调试。打开手机的设置,然后选择。点击具有内部版本号七次的字段。您应该收到一条消息,说您现在是开发人员。

返回设置页面,您会在底部看到一个名为&#34; Developer Options&#34;的新选项。现在启用&#34; USB调试&#34;。

现在,当您将手机连接到计算机时,您会看到一个名为&#34;允许USB调试的弹出框?&#34;。检查&#34;始终允许从此计算机&#34;并确认。

第3。测试并运行ADB

在命令提示符窗口(CMD)中运行以下命令:

adb devices

您应该会在列表中看到您的设备。

<强> 4。打开Chrome检查选项卡

现在,如果之前的所有步骤都已完成并且您成功运行了ADB,请在桌面中打开chrome并转到以下网址:

chrome://inspect

您应该看到您的手机和浏览器在其上运行,点击所需的实例/网站,开发人员控制台将会打开。

祝你好运:)从现在开始,你也可以在手机上进行调试。也许您会在那里找到错误,如果您无法解决问题,请将实际错误放在此处,以便我们为您提供进一步帮助。