gpt4 book ai didi

GWTTestCase - HTMLUnit - 不允许 "Access-Control-Allow-Origin"

转载 作者:行者123 更新时间:2023-12-03 09:22:59 26 4
gpt4 key购买 nike

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

错误:

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 不允许访问跨域的问题,有解决办法吗?

最佳答案

我被这个完全相同的错误响应难住了,但我无法将 ReSTLet 框架重构到我的客户端和服务器代码库中。

处理问题诊断的一些技巧。

  1. 使用代理或检查开发工具记录 OPTIONS 和 GET/POST 对的请求和响应中的确切 header 。
  2. OPTIONS 请求 header “Origin”必须与响应 header “Access-Control-Allow-Origin”完全匹配。没有通配符。也许写下您的响应只是回显请求,例如:

    response.addHeader("Access-control-allow-origin", request.getHeader("Origin"));

  3. 您的请求 header 名称必须在 OPTIONS“Access-control-request-headers” header 值中完整枚举,并与“Access-control-Allow-Headers”响应 header 匹配。

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

关于GWTTestCase - HTMLUnit - 不允许 "Access-Control-Allow-Origin",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27773877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com