json Android WebDriver. XMLHttpRequest无法加载“URL”,Access- Control-Allow-Origin不允许原始“URL”,at null:1

zfycwa2u  于 5个月前  发布在  Android
关注(0)|答案(3)|浏览(82)

我正在Nexus 10上运行我的自动化测试(Android 4.2)使用Selenium WebDriver和Java.我面临的错误是:

XMLHttpRequest cannot load 'URL1'. Origin 'URL2' is not allowed by Access- Control-Allow-Origin. at null:1

字符串

  • URL 1-基于json的后端;
  • URL 2-前端

此错误不会发生Firefox,Chrome,IE 10.但它总是发生在Android上的WebDriver.由于它登录到系统不可用. WebDriver能够点击,sendKeys等.
所以问题是:是否存在任何解决方法来避免这个问题?可能是一些设置,我应该改变WebDriver?可能有人面临这样的事情之前。我感谢任何建议。
我已经尝试了APK 2.21.0和2.32.0。

smdnsysy

smdnsysy1#

看看这个
XMLHttpRequest无法加载“URL 1”。Access- Control-Allow-Origin不允许原始“URL 2”。at null:1
添加以下代码,应用程序将正常运行。

if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
  webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}

字符串
所以,基本上这是因为URL1无法被jquery Json访问

zmeyuzjn

zmeyuzjn2#

由于我不知道你的代码,我将给予你只是一个解释,我认为你可以解决这个问题,请不要把它作为一个真实的的答案,只是给予它一个尝试:)
我有时会遇到这个问题,通常你可以使用CORS功能在你的服务器上解决它,这取决于你使用的服务器应用程序/框架,你以不同的方式使用这个CORS,但基本上你需要从服务器上正确填写响应的头信息:

Access-Control-Allow-Origin
Access-Control-Allow-Methods
Access-Control-Allow-Headers

字符串
一个非常“开放”的配置是:

"Access-Control-Allow-Origin=*
"Access-Control-Allow-Methods=GET, POST, PUT, DELETE, OPTIONS
"Access-Control-Allow-Headers=Content-Type, Authorization

6ljaweal

6ljaweal3#

在我的例子中,这是Web套接字的问题。应用程序基于Web套接字。重点是-原生Android浏览器不支持套接字,直到Android 4.4和Selenium完全使用原生Android浏览器执行测试。
我已经测试了相同的模拟器与Android 4.4和一切正常.感谢大家的帮助.

相关问题