Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWTTestCase-HTMLUnit-不允许;“访问控制允许来源”;_Gwt_Junit_Htmlunit_Restlet - Fatal编程技术网

GWTTestCase-HTMLUnit-不允许;“访问控制允许来源”;

GWTTestCase-HTMLUnit-不允许;“访问控制允许来源”;,gwt,junit,htmlunit,restlet,Gwt,Junit,Htmlunit,Restlet,运行使用GWT调用外部Restful服务的GWTTestCase时(使用Restlet GWT),应用程序会抛出以下错误 错误: Jan 05, 2015 1:24:41 PM com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl runSingleJob SEVERE: Job run failed with unexpected RuntimeException: Wrapped java.l

运行使用GWT调用外部Restful服务的
GWTTestCase
时(使用Restlet GWT),应用程序会抛出以下错误

错误:

Jan 05, 2015 1:24:41 PM com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl runSingleJob
SEVERE: Job run failed with unexpected RuntimeException: Wrapped java.lang.RuntimeException: No permitted "Access-Control-Allow-Origin" header.
net.sourceforge.htmlunit.corejs.javascript.WrappedException: Wrapped java.lang.RuntimeException: No permitted "Access-Control-Allow-Origin" header.
    at net.sourceforge.htmlunit.corejs.javascript.Context.throwAsScriptRuntimeEx(Context.java:1889)
    at com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest.doSend(XMLHttpRequest.java:681)
    at com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest.access$000(XMLHttpRequest.java:94)
    at com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest$1.run(XMLHttpRequest.java:603)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:602)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:507)
    at com.gargoylesoftware.htmlunit.javascript.background.JavascriptXMLHttpRequestJob.run(JavascriptXMLHttpRequestJob.java:36)
    at com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl.runSingleJob(JavaScriptJobManagerImpl.java:328)
    at com.gargoylesoftware.htmlunit.javascript.background.DefaultJavaScriptExecutor.run(DefaultJavaScriptExecutor.java:162)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.RuntimeException: No permitted "Access-Control-Allow-Origin" header.
    ... 9 more

根据我的研究,这似乎是HTMLUnit不允许跨域访问的一个问题,有解决办法吗?

您可以将CORS支持添加到应用程序中

Restlet框架(cf)的2.3版本提供了支持。
如果您使用的是2.2版本,并且因为我们不会将此功能添加到2.2中,您可以在自己的代码中手动添加所需的类(cf和)。

我被同样的错误响应难住了,但我无法将Restlet框架重构到我的客户机和服务器代码库中

处理问题诊断的两个技巧

  • 使用代理或inspect dev工具记录选项和GET/POST对的请求和响应中的确切头
  • 选项请求标题“来源”必须与响应标题“访问控制允许来源”完全匹配。没有通配符。也许写下您的回复只是回应请求,如:

    response.addHeader(“访问控制允许来源”),request.getHeader(“来源”)

  • 您的请求标头名称必须在选项“访问控制请求标头”标头值中完全枚举,并与“访问控制允许标头”响应标头匹配

  • 注意#3中的不匹配将触发与#2中的不匹配相同的错误消息